Главная страница
    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
4-1168772377
gibz
2007-01-14 13:59
2007.06.24
импорт функций в delphi 7


2-1180574560
Ш-К
2007-05-31 05:22
2007.06.24
Отобразить 4 байта


2-1180516736
Uliya
2007-05-30 13:18
2007.06.24
Microsoft Jet 4.0 OLE DB Provider вкладка Подключение


2-1180536974
stud
2007-05-30 18:56
2007.06.24
ничего не понимаю!!!!!


2-1180717499
Malik
2007-06-01 21:04
2007.06.24
Неразбериха с SavePictureDialog.





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