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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
4-1098253544
Koala
2004-10-20 10:25
2004.12.05
Вопрос по передачи файла с помощью модема


4-1098289369
Basket
2004-10-20 20:22
2004.12.05
скачать WMI SDK для XP


8-1094471202
L@rs
2004-09-06 15:46
2004.12.05
BINK32W.DLL


3-1099227035
Тимохов
2004-10-31 15:50
2004.12.05
Проблемы с ADO и multiple recordsets


1-1101292981
Всезнайка
2004-11-24 13:43
2004.12.05
Переход на нужную страницу в CHM-хелпе