Я нашел эту страницу!
http://cc.embarcadero.com/Item/19723
Усовершенствованная реализация jpeg
Автор: Габриэль Корнеану
Это устройство содержит новыйРеализация jpeg (на основе оригинала Delphi)
- исправлена ошибка доступа к изображению высотой в один пиксель
- добавлена поддержка преобразования без потерь для изображений jpeg (на основе библиотеки Thomas G. Lane C - посещение jpegclub.org / jpegtran )
- добавлена поддержка CMYK (только для чтения)
- скомпилировано для D5-2010 и BCB5-6-CMYK для быстрого преобразования MMX в RGB (не для Delphi5,отсутствие MMX ASM) (откат к простой паскальской реализации, если она недоступна)
- исправлена ошибка в Delphi 5 ASM (функция CMYK to RGB)
Вам нужен только файл jpeg.dcu;его можно скопировать в программный каталог или в каталог LIB. Я также сгенерировал файлы obj и hpp для использования с CBuilder 5 и 6. Это то, что вам нужно для его использования:
Это просто перечисление
TJpegTransform = (
jt_FLIP_H, { horizontal flip }
jt_FLIP_V, { vertical flip }
jt_TRANSPOSE, { transpose across UL-to-LR axis }
jt_TRANSVERSE, { transpose across UR-to-LL axis }
jt_ROT_90, { 90-degree clockwise rotation }
jt_ROT_180, { 180-degree rotation }
jt_ROT_270 { 270-degree clockwise (or 90 ccw) }
);
procedure Crop(xoffs, yoffs, newwidth, newheight: integer);
этот метод обрезает изображение
procedure Transform(Operation: TJpegTransform);
этот метод применяет указанное преобразование;Прочитайте комментарии transupp.h об ограничениях (мой код использует опцию кадрирования)
property IsCMYK: boolean read FIsCMYK;
, это будет указывать, если последнее загруженное изображение JPEG имеет кодировку CMYK
property InverseCMYK: boolean read FInverseCMYK write SetInverseCMYK;
, если установлено (по умолчанию), поскольку я мог только найти этот вид изображений), изображение CMYK декодируется с инвертированными значениями CMYK (я читал, что это делает Photoshop).
jpegex - это та же самая единица, скомпилированная с другим именем.Его можно использовать, чтобы избежать конфликтов, когда у вас есть другие компоненты без ссылки на исходный код исходного модуля jpeg.В этом случае вам может понадобиться использовать квалифицированные имена классов для разрешения конфликта имен: jpegex.TJpegImage.xxx.Будьте осторожны, когда используете обе версии в одной программе: даже если у классов одинаковое имя, они не идентичны, и вы не можете разыграть или назначить их напрямую.Единственный способ обмена данными - это сохранение / загрузка из потока.
Отправка комментариев: gabrielcorneanuATyahooDOTcom