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

Вниз

каким способом можно быстро узнать разрешение файлов jpg и bmp?   Найти похожие ветки 

 
zorik ©   (2006-10-16 17:01) [0]

каким способом можно быстро узнать разрешение файлов jpg и bmp?


 
Jeer ©   (2006-10-16 17:03) [1]

ACDSee.


 
zorik ©   (2006-10-16 17:11) [2]


> Jeer ©   (16.10.06 17:03) [1]

:-)

Каким образом програмно узнать разрешение файлов jpg и bmp


 
Sapersky   (2006-10-16 18:03) [3]

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988625329&n=21

Bmp - элементарно, чтение заголовка. Точнее, существует 2 типа заголовков, BITMAPINFOHEADER и BITMAPCOREHEADER. Отличить их можно по размеру (1-й dword). Перед заголовком нужно пропустить 14 байт. В общем, см. TBitmap.LoadFromStream.


 
Ketmar ©   (2006-10-16 18:17) [4]

GraphicsEx


 
Jeer ©   (2006-10-16 18:34) [5]

Был для jpg такой "жуткий" способ с использованием:

function ReadMWord(f: TFileStream): word;
type  TMotorolaWord = record
   case byte of
     0: (Value: word);
     1: (Byte1, Byte2: byte);
   end;

var  MW: TMotorolaWord;

begin
 f.Read(MW.Byte2, SizeOf(Byte));
 f.Read(MW.Byte1, SizeOf(Byte));
 Result := MW.Value;
end;

procedure GetJPGSize(const sFile: string; var wWidth, wHeight: word);
const  ValidSig : array[0..1] of byte = ($FF, $D8);
Parameterless = [$01, $D0, $D1, $D2, $D3, $D4, $D5, $D6, $D7];
var  Sig: array[0..1] of byte;
      f: TFileStream;
      x: integer;
      Seg: byte;
      Dummy: array[0..15] of byte;
      Len: word;
      ReadLen: LongInt;
begin
   FillChar(Sig, SizeOf(Sig), #0);
   f := TFileStream.Create(sFile, fmOpenRead);
   try
    ReadLen := f.Read(Sig[0], SizeOf(Sig));
    for x := Low(Sig) to High(Sig) do
      if Sig[x] <> ValidSig[x] then ReadLen := 0;
      if ReadLen > 0 then    begin
        ReadLen := f.Read(Seg, 1);
        while (Seg = $FF) and (ReadLen > 0) do      begin
           ReadLen := f.Read(Seg, 1);
           if Seg <> $FF then        begin
             if (Seg = $C0) or (Seg = $C1) then          begin
                 ReadLen := f.Read(Dummy[0], 3); { don"t need these bytes }
                 wHeight := ReadMWord(f);
                 wWidth := ReadMWord(f);
             end
             else begin
               if not (Seg in Parameterless) then            begin
                  Len := ReadMWord(f);
                  f.Seek(Len-2, 1);
                  f.Read(Seg, 1);            end
              else
                   Seg := $FF; { Fake it to keep looping. }          end;
              end;
           end;
         end;
        finally
                f.Free;
        end;
      end;


 
Думкин ©   (2006-10-17 06:47) [6]

ExtractFileExt function

Returns the extension portions of a file name.

Unit

SysUtils


 
Думкин ©   (2006-10-17 06:48) [7]

Тьфу ты - разрешение, а я расширение прочитал. :(



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

Форум: "Media";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.049 c
6-1165135066
Азат
2006-12-03 11:37
2007.06.24
картинки в браузере на ВЕЧНО!


15-1179776896
Real
2007-05-21 23:48
2007.06.24
А какой у вас был НЕ первый Hello World?


3-1175167004
Draught
2007-03-29 15:16
2007.06.24
запрос с суммированием текстового поля


2-1180696771
Kolan
2007-06-01 15:19
2007.06.24
Далать что-то, если N раз возникнет исключение, то raise его.


1-1177404709
Zirf
2007-04-24 12:51
2007.06.24
TChart - снятие данных





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