html获取图片dpi,获取jpg图片的x,y的分辨率dpi

获取jpg图片的x,y的分辨率dpi Delphi / Windows SDK/API

http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061010091949259.html

怎样取得jpg的呢?

获取JPEG的宽度、高度等信息

{   Copyright   Kingron   2002   }

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,   LenLo:   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   >=   Fs.Size)   or   (Seg.Flag   =   JPEG_FRAME);

end;

begin

FS   :=   TFileStream.Create(FileName,   fmOpenRead);

try

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

FS.Read(Flag1,   SizeOf(Flag1));

FS.Position   :=   FS.Size   -   2;

FS.Read(Flag2,   SizeOf(Flag2));

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

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

FS.Position   :=   2;

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

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

FS.Read(B,   SizeOf(B));   {   高度高字节   }

WordRec(Height).Hi   :=   B;

FS.Read(B,   SizeOf(B));   {   高度低字节   }

WordRec(Height).Lo   :=   B;

FS.Read(B,   SizeOf(B));   {   宽度高字节   }

WordRec(Width).Hi   :=   B;

FS.Read(B,   SizeOf(B));   {   宽度低字节   }

WordRec(Width).Lo   :=   B;

finally

FS.Free;

end;

end;

procedure   TForm1.Button1Click(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;

-------------------------------------------------------

本回复由大傻的破玩意儿【CSDN's   forum   Explorer】完成!

大傻的破玩意儿,今天你用了木有   !!

软件功能强大,速度超快!!支持中...

软件下载地址:http://CoolSlob.ys168.com

DPI——每英寸的点数

单针对图片有意义吗

何必那么麻烦     一句话搞定

ShowMessage(IntToStr(GetDeviceCaps(LoadInBmp.Canvas.Handle,LOGPIXELSY)))

LOGPIXELSY   跟   LOGPIXELSX   就是   宽高的象素

没有人知道吗?

UP.

我再附加一个问题:       如何将JPEG   图象   由4:3裁减为   2:3.

DPI只对打印有意义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值