Home News

Программирование в Delphi 7 стр.121

06.09.2018

finalization BackBitmap.Free; FreeLibrary(CardsDll);

end.

( Примечание ^

В Windows 95/98 этадинамическая библиотека- 16-разрядная, и работатьтак, как описано, не будет. Используйте библиотекуСа^э^Н из cocTaBaWindows NT, 2000.

Аналогичным образом можно загрузить битовые карты для всей колоды. При показе карты, в зависимости от того, открыта она или закрыта, отрисовывается ОДИН ИЗ Объектов TBitmap:

if Known then // карта открыта

Canvas.StretchDraw(ClientRect, FaceBitmap)

else

Canvas.StretchDraw(ClientRect,BackBitmap)

end;

Графический формат JPEG. Класс TJPEGImage

В 1988 году был принят первый международный стандарт сжатия неподвижных изображений. Он был назван по имени группы, которая над ним работала - JPEG (Joint Photographie Expert Group). Дело в том, что стандартные архиваторы (ZIP, ARJ) и традиционные алгоритмы сжатия в форматах GIF, TIFF и PCX не могут достаточно сильно сжать полутоновую или цветную картинку (типа фотографии) - максимум в 2-3 раза. Примененный в JPEG алгоритм позволяет достичь сжатия в десятки раз - правда, при этом изображение подвергается необратимому искажению, и из него пропадает часть деталей. Бессмысленно (и вредно!) подвергать хранению в формате JPEG чертежи, рисунки, а также любые изображения с малым числом градаций - он предназначен именно для изображений фотографического качества.

Поддержка формата JPEG реализована в Delphi посредством класса

TJPEGImage, который ЯВЛЯеТСЯ ПОТОМКОМ Класса TGraphic.

( Примечание ^

Название TJPEGImage не совсем удачное. КТ1тадеэтот класс не имеет ни малейшего отношения. Скорее, это "двоюродный брат" классаТВИт ар.

К такому объекту предъявляются двоякие требования. С одной стороны, он должен поддерживать сжатие данных для записи на диск. С другой - распакованные данные в формате DIB, чтобы по требованию системы отрисовать их. Поэтому объект класса TTPEGimage может хранить оба вида данных, а также производить их взаимные преобразования, т. е. сжатие и распаковку. Для этого в нем предусмотрены методы:

prœedure Corrpress; prœedure DIBNfeeded; prœedure JPBGNeeded;

Рекомендуется вызывать метод DIBNeeded заранее, перед отрисовкой картинки - это ускорит процесс ее вывода на экран.

Кроме того, полезно использовать метод Assign, который позволяет поместить в класс TTPEGimage объект TBitmap и наоборот:

MyJPEGImage.Assign(MyBitmap); MyBitmap.Assign(MyJPEGImage);

При этом происходит преобразование форматов.

Свойства TJPEGimage можно условно разделить на две группы: используемые при сжатии и при распаковке.

Важнейшим из свойств, нужных при сжатии, является CompressionQuality: type TJPEGQualityRange = 1..100; property CcrrpressionQuality : TJPB32ualityRange;

Оно определяет качество сжимаемого изображения и его размер. При малых значениях этого свойства файлы получаются очень маленькими, но с большими искажениями (напомним, что стандарт JPEG предусматривает сжатие с потерями качества). При значениях, близких к 100, потери незаметны, но и размер файла при этом максимален.

(_Примечание ^

⇐ Предыдущая страница| |Следующая страница ⇒

Новости

rss