Форум по Delphi программированию

 



Вернуться   Форум по Delphi программированию > Разное > Исходники и статьи
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.02.2012, 11:57
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Восклицание GdipGraphic (BMP, JPEG, GIF, TIFF, PNG)

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  
Старый 15.02.2012, 00:57
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Я подозреваю, это API-шный вариант, переделанный для всех под VCL, или, по-крайней мере, то из чего в последстви был сделан API вариант.

P.S. Если уж выкладывешь DCU-шку, то хотя бы делай и под другие версии Дельфи также. Мне оно в любом варианте не нужно (посмотрел и стёр) , но остальные не все пользуются 7 версией Дельфи.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 15.02.2012 в 01:00.
Ответить с цитированием
  #3  
Старый 15.02.2012, 04:08
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,615
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Интересно, но с исходником бы...
Готовые dcu не использую, т.к. у меня стоит измененный jpeg.dcu (и некоторые другие модули) со всеми вытекающими...
Ответить с цитированием
  #4  
Старый 15.02.2012, 09:07
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

префикс Gdip означает Windows GDI+
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 15.02.2012, 21:22
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Хороший ответ, главное ни к чему.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 16.02.2012, 08:41
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

это по поводу:
Цитата:
Я подозреваю, это API-шный вариант, переделанный для всех под VCL, или, по-крайней мере, то из чего в последстви был сделан API вариант.
чтобы в догадках не мучиться)))
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 16.02.2012, 21:13
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Какой я провидец , знал какой будет ответ. А про API вариант написал, думая что в своих проектах используешь такой вариант юнита. Тем более он несложный.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #8  
Старый 19.02.2012, 11:36
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

для Delphi 2009 : http://narod.ru/disk/41180449001/Gdi...c2009.rar.html
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter