Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.14;
Скачать: CL | DM;

Вниз

TIFF   Найти похожие ветки 

 
Чародей ©   (2006-04-15 15:07) [0]

Подскажите компаненнты для работы с TIFF, открыть/показать/сохранить. Есть LibTiffDelphi, но как работать с ней я не понял, а TiffBitmapCmponent не со все файлами работает:(


 
vrem   (2006-04-15 15:16) [1]

> Есть LibTiffDelphi
Есть. разобраться можно, по яндексу я что то нашёл и заработало, вопрос в другом -
YCbCr если цвет, то преобразованный этим компонентом рисунок желтее, на вид отличается чем если открывать PicaView или другими программами. так что я этот компонент выкинул :) Потому что в самом Tiff зашита формула преобразования YCbCr=>RGB, и если компонент всеравно не может правильно преобразовать, значит он не тот, который нужен.


 
Чародей ©   (2006-04-15 15:34) [2]


> Есть. разобраться можно, по яндексу я что то нашёл и заработало

Если не сложно поделись что нашел, я в нете вообще про TIFF почти ничего не нашел на torry есть какие-то компоненты но они все SW.


 
vrem   (2006-04-15 16:01) [3]

Для Дельфи 7 =
uses LibTiffDelphi;
Если пишет не найден, то найти его вручную, и component - install component

на форму кнопку и image кинуть.

procedure TForm1.Button1Click(Sender: TObject);
var wi,ha:cardinal;
df:string;
OpenTiff: PTIFF;
FirstPageBitmap: TBitmap;
begin
df:="f:\00.tif";
OpenTiff:=LibTiffDelphi.TIFFOpen(df,"r");
if OpenTiff=nil then raise Exception.Create("Не получилось открыть файл """+df+"""");

LibTiffDelphi.TIFFGetField(OpenTiff,TIFFTAG_IMAGEWIDTH,@wi);
LibTiffDelphi.TIFFGetField(OpenTiff,TIFFTAG_IMAGELENGTH,@ha);

try
   FirstPageBitmap:=TBitmap.Create;
   FirstPageBitmap.PixelFormat:=pf32bit;
   FirstPageBitmap.Width:=Wi;
   FirstPageBitmap.Height:=Ha;
 except
   if FirstPageBitmap<>nil then FirstPageBitmap.Destroy;
   TIFFClose(OpenTiff);
   raise Exception.Create("Unable to create TBitmap buffer");
 end;
 LibTiffDelphi.TIFFReadRGBAImage(OpenTiff,Wi,Ha,
              FirstPageBitmap.Scanline[Ha-1],0);
 LibTiffDelphi.TIFFClose(OpenTiff);

TIFFReadRGBAImageSwapRB(Wi,ha,
FirstPageBitmap.Scanline[Ha-1]);

form1.Image1.Align:=alClient;
form1.Image1.Picture.Assign(FirstPageBitmap);

end;

Вот другой компонент для tiff, но он не понимает YCbCr
http://logicnet.dk/lib/


 
Чародей ©   (2006-04-15 16:39) [4]


>  LibTiffDelphi.TIFFReadRGBAImage(OpenTiff,Wi,Ha,
>               FirstPageBitmap.Scanline[Ha-1],0);
>  LibTiffDelphi.TIFFClose(OpenTiff);
>
> TIFFReadRGBAImageSwapRB(Wi,ha,
> FirstPageBitmap.Scanline[Ha-1]);


TIFFReadRGBAImageSwapRB - не нашел
а так работает

LibTiffDelphi.TIFFReadRGBAImage(OpenTiff,Wi,Ha,FirstPageBitmap.Scanline[Ha-1],0);
TIFFReadRGBAImage(OpenTiff,Wi,ha,FirstPageBitmap.Scanline[Ha-1],0);
LibTiffDelphi.TIFFClose(OpenTiff);

ImageFileLib скачал. В Demo открываю Tif, а он его рисует с черными полосами? В этой библиотеке есть какие-то ошибки?


 
Чародей ©   (2006-04-15 17:33) [5]

Нет, ли примера с сохранением файла? А то я чет не понимаю метеодов действия этой библиотеки.


 
Чародей ©   (2006-04-15 18:06) [6]

В папке ServicePackFiles\i386 нашел файл fxstiff.dll, как показывает eXeScope в нем содержатся функции очень похожие(по названиям) на те которые есть в LibTiffDelphi. И в том числе есть ф-я TiffCreate, но как узнать параметры которые необходимо передать и что будет возвращено?


 
Чародей ©   (2006-04-15 21:45) [7]

Уф, 3 часа под отладчиком не прошли даром в ImageFileLib все таки нашел ошибку в

procedure TLZW.AddEntry(const Entry:TTableEntry);

есть строчка

4093: Begin CodeLength:=9;

надо 4093 заменить на 4094. Слишком рано таблица сбрасывается. Это так если кто еще сталкнется


 
Desdechado ©   (2006-04-18 11:17) [8]

> Это так если кто еще сталкнется
лучше автору библиотеки напиши

по сабжу:
Видел библиотеку с кучей графформатов GraphicEx, но насколько там сейчас поддержан TIFF, не знаю. Когда видел, были некоторые ограничения.


 
Ega23 ©   (2006-04-18 11:28) [9]

Я когда-то очень давно сам писал декодер. Скачал описание формата, посидел над ним с недельку, и написал.
Даже если исходники и остались - не дам, т.к. на них стыдно смотреть, ибо было это дело лет 5 назад.  :о)

В принципе, сильно сложного там ничего нет.


 
Чародей ©   (2006-04-18 17:00) [10]


> В принципе, сильно сложного там ничего нет.

Сильно сложные форматы я вообще еще не встречал. Основная сложность это алгоритмы сжатия. Вечно нет времени хоть один нормально изучить

> лучше автору библиотеки напиши

Я не видел ни каких координат чтоб что-то сказать


 
Ega23 ©   (2006-04-18 17:09) [11]


> Основная сложность это алгоритмы сжатия.


AFAIR, в TIFF кроме Хаффмана, вроде, больше ничего нет.
Хотя могу и ошибаться - давно это было...


 
Чародей ©   (2006-04-18 17:24) [12]

В тех библиотеках  которые я использовал был только LZW, а PhotoShop показывает что может сохранить еще в ZIP и JPEG, про Haffman ни где ни слова


 
Ega23 ©   (2006-04-18 17:48) [13]

это алгоритм Хаффмана. По нему, к примеру, тот самый JPEG сжимается.


 
oldman ©   (2006-04-18 17:54) [14]


> Чародей ©   (15.04.06 15:07)  


Господи, да где ты TIFF нашел???
Конвертеры же есть.
работай с BMP, JPG и т.д...



Страницы: 1 вся ветка

Текущий архив: 2006.05.14;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.035 c
2-1145971463
dera
2006-04-25 17:24
2006.05.14
Можна ли "расширить" строку, где прописаны имена полей так,


2-1145690851
$$$nick$$$
2006-04-22 11:27
2006.05.14
Помогите решить задачу.


11-1126077378
Kozz
2005-09-07 11:16
2006.05.14
Кто-нибудь делал анимационную иконку в трее ?


2-1146039737
Volodya_
2006-04-26 12:22
2006.05.14
TMediaPlayer утечка памяти


2-1146048913
Meganop
2006-04-26 14:55
2006.05.14
Вызов exe