![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
GdipGraphic - модуль для работы с изображениями BMP, JPEG, GIF, TIFF, PNG.
![]() Класс: TGdipGraphic = class(TGraphic) Код:
public
property GpImage: GpImage read FGpImage;
property ImageRawFormat: TGUID read GetImageRawFormat;
constructor Create; override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
procedure Draw(ACanvas: TCanvas; const Rect: TRect); override;
procedure LoadFromStream(Stream: TStream); override;
procedure SaveToStream(Stream: TStream); override;
procedure SaveToStreamEncoder(Stream: TStream; clsidEncoder: TGUID);
procedure SaveToFileEncoder(Filename: String; clsidEncoder: TGUID);
procedure LoadFromClipboardFormat(AFormat: Word; AData: THandle;
APalette: HPALETTE); override;
procedure SaveToClipboardFormat(var AFormat: Word; var AData: THandle;
var APalette: HPALETTE); override;
procedure LoadFromResource(ResName: String);
end;Возможности: -поддержка в TImage -поддержка прозрачности -чтение из файла, потока, ресурса (RT_RCDATA) -сохранение в файл, поток в нужном формате (BMP, JPEG, GIF, TIFF, PNG) -определение формата изображения -отображение на TCanvas -изменение размеров при отображении -копирование в буфер обмена как CF_BITMAP -вставка из буфера обмена CF_BITMAP Константы кодировщика: Код:
EncoderBMP: TGUID = '{557CF400-1A04-11D3-9A73-0000F81EF32E}';
EncoderJPEG: TGUID = '{557CF401-1A04-11D3-9A73-0000F81EF32E}';
EncoderGIF: TGUID = '{557CF402-1A04-11D3-9A73-0000F81EF32E}';
EncoderTIFF: TGUID = '{557CF405-1A04-11D3-9A73-0000F81EF32E}';
EncoderPNG: TGUID = '{557CF406-1A04-11D3-9A73-0000F81EF32E}';Код:
DecoderBMP: TGUID = '{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}';
DecoderJPEG: TGUID = '{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}';
DecoderGIF: TGUID = '{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}';
DecoderTIFF: TGUID = '{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}';
DecoderPNG: TGUID = '{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}';Скачать: http://narod.ru/disk/64758205001.4db...aphic.rar.html Демки: http://narod.ru/disk/64756924001.a86...htest.rar.html http://narod.ru/disk/64756916001.99d...cTest.rar.html Пример кода: Код:
uses
GdipGraphic,
var
GdipImage: TGdipGraphic;
begin
GdipImage:=TGdipGraphic.Create;
GdipImage.LoadFromFile('Landscape.png');
GdipImage.SaveToFileEncoder('Landscape.tif', EncoderTIFF);
GdipImage.Free;
end;Последний раз редактировалось NumLock, 24.12.2012 в 09:55. |
|
#2
|
||||
|
||||
|
Я подозреваю, это API-шный вариант, переделанный для всех под VCL, или, по-крайней мере, то из чего в последстви был сделан API вариант.
P.S. Если уж выкладывешь DCU-шку, то хотя бы делай и под другие версии Дельфи также. Мне оно в любом варианте не нужно (посмотрел и стёр) , но остальные не все пользуются 7 версией Дельфи.Последний раз редактировалось angvelem, 15.02.2012 в 01:00. |
|
#3
|
|||
|
|||
|
Интересно, но с исходником бы...
Готовые dcu не использую, т.к. у меня стоит измененный jpeg.dcu (и некоторые другие модули) со всеми вытекающими... |
|
#4
|
||||
|
||||
|
префикс Gdip означает Windows GDI+
![]() |
|
#5
|
||||
|
||||
|
Хороший ответ, главное ни к чему.
|
|
#6
|
||||
|
||||
|
это по поводу:
Цитата:
|
|
#7
|
||||
|
||||
|
Какой я провидец
, знал какой будет ответ. А про API вариант написал, думая что в своих проектах используешь такой вариант юнита. Тем более он несложный. |
|
#8
|
||||
|
||||
|
для Delphi 2009 : http://narod.ru/disk/41180449001/Gdi...c2009.rar.html
|