Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
1-1144205966
SnapIn
2006-04-05 06:59
2006.05.14
Подсветка слова ссылкой под мышкой в TSynEdit


3-1142861160
Спрашивающий
2006-03-20 16:26
2006.05.14
NULL в запросе


15-1145531028
__DATA__
2006-04-20 15:03
2006.05.14
Русские буквы в английской WindowsXP Home ed SP2


15-1145532006
syte_ser78
2006-04-20 15:20
2006.05.14
Регистрация сайта в поисковиках


2-1146121093
IntruderLab
2006-04-27 10:58
2006.05.14
TIdFTP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский