delphi怎么读取jpg等图片文件的属性

delphi怎么读取jpg等图片文件的属性,第1张

function GetJPEGSize(FileName: string; var Width, Height: WORD): Boolean;

const

JPEG_FLAG_BEGIN = $D8FF;

JPEG_FLAG_END = $D9FF;

JPEG_FRAME = $C0FF;

var

FS: TFileStream;

Flag1, Flag2: WORD;

B: Byte;

procedure SeekForFrame;

type

TSegHeader = packed record

Flag: WORD;

LenHi, LenL Byte;

end;

var

Seg: TSegHeader;

begin

with Seg, FS do

repeat

Read(Seg, SizeOf(Seg));

if Flag <> JPEG_FRAME then

Position := Position + MakeWord(LenLo, LenHi) - 2;

until (Position >= FsSize) or (SegFlag = JPEG_FRAME);

end;

begin

FS := TFileStreamCreate(FileName, fmOpenRead);

try

{ JPEG 文件开头必须为 FF D8,文件尾必须为 FF D9 }

FSRead(Flag1, SizeOf(Flag1));

FSPosition := FSSize - 2;

FSRead(Flag2, SizeOf(Flag2));

result := (Flag1 = JPEG_FLAG_BEGIN) and (Flag2 = JPEG_FLAG_END);

if not result then exit; { 不是合法的JPEG文件则退出 }

FSPosition := 2;

SeekForFrame; { 寻找JPEG的Frame段,即图像数据区 }

FSRead(B, SizeOf(B)); { Frame段段头后第一个Byte为数据精度 }

FSRead(B, SizeOf(B)); { 高度高字节 }

WordRec(Height)Hi := B;

FSRead(B, SizeOf(B)); { 高度低字节 }

WordRec(Height)Lo := B;

FSRead(B, SizeOf(B)); { 宽度高字节 }

WordRec(Width)Hi := B;

FSRead(B, SizeOf(B)); { 宽度低字节 }

WordRec(Width)Lo := B;

finally

FSFree;

end;

end;

procedure TForm1Button1Click(Sender: TObject);

var

W, H: Word;

begin

with OpenDialog1 do

if Execute then

if GetJPEGSize(FileName, W, H) then

Caption := Format('Yes,W:%d,H:%d', [W, H])

else Caption := 'No';

end;

Picture1Scalemode=3,picture1autosize=ture,然后把载入Picture1中,像素=Picture1ScaleHeightPicture1ScaleWidth,水平分辨率=Picture1ScaleWidth,垂直分辨率=Picture1ScaleHeight,高度和宽度那就是像素

用FileStream打开文件查看大小再创建Bitmap显示尺寸。

Dim f As New IOFileStream("C:\1bmp", IOFileModeOpen, IOFileAccessRead) '改成你的文件地址。

MsgBox(fLength / 1024 & "KB") '没做仔细,你根据需要自己改吧,Length得到的是字节数。

Dim b As New Bitmap(f)

fDispose()

MsgBox(bWidth & "  " & bHeight)

FileStream 类:>

Bitmap 类:>

将当作普通文件处理

File file = new File("/sdcard/demojpg");

FileInputStream fis = new FileInputStream(file);

int fileLen = fisavailable();

以上就是关于delphi怎么读取jpg等图片文件的属性全部的内容,包括:delphi怎么读取jpg等图片文件的属性、怎样用VB获取图片文件属性中的摘要内容,如像素、分辨率(高度、宽度、水平分辨率、垂直分辨率)、VB.NET获取Image图片对象属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9566666.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存