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

Вниз

проблема с расширением и его переменой   Найти похожие ветки 

 
SmikE   (2004-11-18 14:02) [0]

Есть вот такой код, записанный в обработчик кнопки:
s:=ExtractFileExt(opendialog1.FileName);
if s=".gif" then ConvertGIF; //Конвертирует gif в bmp, рабочий
if (s=".jpeg") or (s=".jpg") then ConvertJPG; //Конвертирует jpg в bmp, тоже в порядке
при работе с gif вылетает ошибка "invalid GIF signature"
а если поменять местами строчки кода, то JPEG Eror #53,что делать?


 
Ega23 ©   (2004-11-18 14:07) [1]

НЕЛЬЗЯ формат графических файлов определять по их расширению. Для этого сигнатура как раз существует.
Что-то типа этого:


type
TGraphicFormat=(gfUnknown, gfBMP, gfJPEG, gfGIF, gfTIFF);

function GetGraphicFormat(const FileName:String):TGraphicFormat;
var
Buffer: array[0..2] of Byte;
fs:TFileStream;
begin
Result:=gfUnknown;
try
  fs:=TFileStream.Create(FileName,fmOpenRead);
  fs.ReadBuffer(Buffer, 3);
  if (Buffer[0] = $49) and (Buffer[1] = $49) and (Buffer[2] = $2A) then Result:=gfTIFF;
  if (Buffer[0] = $42) and (Buffer[1] = $4D) then Result:=gfBMP;
  if (Buffer[0] = $FF) and (Buffer[1] = $D8) then Result:=gfJPEG;
  if (Buffer[0] = $47) and (Buffer[1] = $49) and (Buffer[2] = $46) then Result:=gfGIF;
finally
  fs.Free;
end;
end;


 
Digitman ©   (2004-11-18 14:08) [2]


> при работе с gif вылетает ошибка "invalid GIF signature"


значит в файле с gif-расширением отнюдь не данные в gif-формате


 
TUser ©   (2004-11-18 14:09) [3]


> НЕЛЬЗЯ формат графических файлов определять по их расширению

И тем не менее ВСЕ графические редакторы поступают именно так. Если переименовать gif в jpeg, то он от этого лучше открываться не станет, но считается, что если пользователь дошел до такой жизни - то это уж его проблемы.


 
SmikE   (2004-11-18 14:12) [4]

Проблемы возникают и при работе с НАСТОЯЩИМИ gif и JPG


 
TUser ©   (2004-11-18 14:15) [5]

Значит, у тебя проблема в ConvertJPG


 
Ega23 ©   (2004-11-18 14:35) [6]

И тем не менее ВСЕ графические редакторы поступают именно так. Если переименовать gif в jpeg, то он от этого лучше открываться не станет, но считается, что если пользователь дошел до такой жизни - то это уж его проблемы.

Не надо мне грязи! Переименуй bmp в pas и открой его через ACDSee.


 
SmikE   (2004-11-18 15:03) [7]

И всё-таки в процедурах ошибки нет, ну помогите плз


 
Digitman ©   (2004-11-18 17:08) [8]


> SmikE   (18.11.04 15:03) [7]


>  процедурах ошибки нет


только вот не надо уже здесь горбатого лепить !

по-твоему, сообщения

"invalid GIF signature"
"JPEG Eror #53"

выдает кто угодно, хоть святой дух, только не твои процедуры ? так что ли ?



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

Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.031 c
1-1100672621
Hanson
2004-11-17 09:23
2004.12.05
D8 идет на Pocket PC ?


4-1098427511
Виктор
2004-10-22 10:45
2004.12.05
Thread


1-1100722921
r_alex
2004-11-17 23:22
2004.12.05
Посоветуйте как и насколько можно изменить компоненту ListBox


1-1100081028
Виктор
2004-11-10 13:03
2004.12.05
Вызов функции в основной форме из BPL


1-1101233667
Al1
2004-11-23 21:14
2004.12.05
Для чего свойство Tag





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский