Главная страница
    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.46 MB
Время: 0.04 c
14-1100368415
FutureProgramme
2004-11-13 20:53
2004.12.05
Как поставить пароль на папку


3-1099995990
alsov1
2004-11-09 13:26
2004.12.05
Нужен алгоритм выборки по рекурсивной связи


1-1101107330
LOL
2004-11-22 10:08
2004.12.05
Печать


6-1096482504
cherrex
2004-09-29 22:28
2004.12.05
Winsocket2


1-1101227757
fashionguide
2004-11-23 19:35
2004.12.05
Вопрос с работой курсора





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