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, потери незаметны, но и размер файла при этом максимален.
(_Примечание ^