|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"JPEG/GIFのサイズ取得"
//JPEGとGIFの表示サイズ(縦横のピクセル数)を取得します。
//JPEGはJPEG UNITで取得できるのですがGIFは無理矢理読んでいます。
//上位バイトと下位バイトの位置が反転しているで読む順番に注意)
//(もう少し何とかなりそう・・乞う、添削)
//フォームにButtonを1,EditBoxを2、OpenDialogを配置します。
//Buttonを押すとファイル選択ダイヤログを表示し、選択したjpeg/gifファイル
//の縦横のピクセル数をEditBOXに表示します。
uses
Jpeg;
var
JpegImage:TJpegImage;
procedure TForm1.Button1Click(Sender: TObject);
var
F:File;data:byte;numread,hh,ww:integer;
h1,h2,w1,w2,Ext:string; //h1は上位1バイトめ
begin
if OpenDialog1.Execute then
begin
Ext:= ExtractFileExt(OpenDialog1.FileName);
if (Ext='.jpg') or (Ext='.JPG') then //JPEGサイズの把握
begin
JpegImage:=TJpegImage.Create;
with JpegImage do
begin
LoadFromFile(OpenDialog1.FileName);
Edit1.Text:=IntToStr(Width);
Edit2.Text:=IntToStr(Height);
Free;
end;
end;
if (Ext='.gif') or (Ext='.GIF') then //gifサイズの把握
begin
Assignfile(F,OpenDialog1.FileName);
Reset(F,1);
Seek(F,9);
BlockRead(F,data,sizeOf(data),numread);
h1:=Format('%x',[data]);
Seek(F,8);
BlockRead(F,data,sizeOf(data),numread);
h2:=Format('%x',[data]);
Seek(F,7);
BlockRead(F,data,sizeOf(data),numread);
w1:=Format('%x',[data]);
Seek(F,6);
BlockRead(F,data,sizeOf(data),numread);
w2:=Format('%x',[data]);
CloseFile(F);
hh:=StrToInt('$'+h1+h2);
ww:=StrToInt('$'+w1+w2);
Edit1.Text:=IntToStr(ww);//横ピクセル数
Edit2.Text:=IntToStr(hh);//縦ピクセル数
end;
end;
end;
97/11/01(土) 多摩の岳夫(GFA03144)
http://www.asahi-net.or.jp/~ij7t-snhr/
Original document by 多摩の岳夫 氏 ID:(GFA03144)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|