如何获得图片(JPG文件)的真实尺寸?
有时候需要打印图片,别人提供的JPG图片,同样用200的分辨率扫描的,用PHTOSHOP打开,看图片尺寸时,分辨率有的是200,并且尺寸是对的,有的却变成了72的分辨率,图片尺寸变成了几十厘米乘几十厘米,大了很多,这样打印的时候,就很难知道真实的图片尺寸,用DELPHI编程来打印,就很难处理,不知有什么解决方法? 问题点数:80、回复次数:8Top
1 楼yerly(万里)回复于 2006-05-02 16:13:45 得分 0
MyJPEG := TJPEGimage.Create;
try
MyJPEG.LoadFromFile(OpenPictureDialog1.FileName);
showmessage(inttostr(MyJPEG.Height) + ' ' +inttostr(MyJPEG.Width));
finally
MyJPEG.free;
end;Top
2 楼cybercake(数字蛋糕)回复于 2006-05-02 18:24:51 得分 0
假如文件中的Dpi信息不对,那么理论上是没有办法知道文件的真实尺寸的。
作为折中的办法,只好让用户来决定应该把图片打成多大。Top
3 楼zzwu(未名)回复于 2006-05-05 20:49:37 得分 0
"有的是200,并且尺寸是对的,有的却变成了72的分辨率" 什么意思啊?
是同一个Jpg吗?
如果是,那就不可思义了!
如国是不同的jpg,
那只可能是扫描仪器设置不同(否则也不可思义).
Top
4 楼herryjin(herry)回复于 2006-05-06 01:53:01 得分 0
Uses
GDIPAPI,GDIPOBJ
var
GPImage : TGPImage;
JPGWidth,JPGHeight : Integer;
begin
GpImage := TGPImage.Create('\test.jpg');
JPGWidth := GpImage.GetWidth;
JPGHeight:= GPImage.GetHeight;
GPImage.Free;
end;
Top
5 楼yzbaby(我是快乐的)回复于 2006-07-07 22:01:42 得分 0
这个问题我也正在遇到
楼主的意思应该是jpg文件来源于不同的用户
现在需要统一处理。
我现在想的办法是,先统一处理成比如200dpi的jpg.
然后打印。
Top
6 楼SonicX(SonicX)回复于 2006-07-08 23:14:58 得分 0
有个误区,图形的像素尺寸和DPI没有任何联系只和打印尺寸发生关系
PS里有误导嫌疑,就是修改DPI会自动修改像素尺寸
LZ可以试验一下,修改DPI,但不改变像素尺寸,图形大小是不会发生变化的,但打印尺寸就发生变化了,印刷行业为保证打印质量一般推荐300点DPI,WINDOWS桌面默认是72点,DELPHI也是72点Top
7 楼zhou13()回复于 2006-07-12 18:11:55 得分 0
"有的是200,并且尺寸是对的,有的却变成了72的分辨率"
你都知道200是对的了,不就好了?
实在不行
Uses
GDIPAPI,GDIPOBJ
var
GPImage : TGPImage;
JPGWidth,JPGHeight : Integer;
begin
GpImage := TGPImage.Create('\test.jpg');
JPGWidth := GpImage.GetWidth;
JPGHeight:= GPImage.GetHeight;
GPImage.Free;
end;
这各写法没错 ,可以使用阿,获得的就是真实的,不会有问题Top
8 楼Blakhawk(黑鹰)回复于 2006-07-13 00:53:00 得分 0
楼上的应当是可以的啊。Top




