Главная страница
    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
15-1180347760
micke_2007
2007-05-28 14:22
2007.06.24
Вопрос о Shop-Script-Primium


15-1179975610
Sergey Masloff
2007-05-24 07:00
2007.06.24
Посоветуйте кофигурацию компьютера


4-1169011105
Alex603081
2007-01-17 08:18
2007.06.24
код кнопки мыши


1-1177748673
bss
2007-04-28 12:24
2007.06.24
Как сменить шрифт у контрола, который нe доступен (Enabled false)


2-1180562218
Nevus
2007-05-31 01:56
2007.06.24
Значение таймера





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