如何获得图片(JPG文件)的真实尺寸? 有时候需要打印图片,别人提供的JPG图片,同样用200的分辨率扫描的,用PHTOSHOP打开,看图片尺寸时,分辨率有的是200,并且尺寸是对的,有的却变成了72的分辨率,图片尺寸变成了几十厘米乘几十厘米,大了很多,这样打印的时候,就很难知道真实的图片尺寸,用DELPHI编程来打印,就很难处理,不知有什么解决方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MyJPEG := TJPEGimage.Create;tryMyJPEG.LoadFromFile(OpenPictureDialog1.FileName);showmessage(inttostr(MyJPEG.Height) + ' ' +inttostr(MyJPEG.Width));finallyMyJPEG.free;end; 假如文件中的Dpi信息不对,那么理论上是没有办法知道文件的真实尺寸的。作为折中的办法,只好让用户来决定应该把图片打成多大。 "有的是200,并且尺寸是对的,有的却变成了72的分辨率" 什么意思啊?是同一个Jpg吗? 如果是,那就不可思义了!如国是不同的jpg, 那只可能是扫描仪器设置不同(否则也不可思义). Uses GDIPAPI,GDIPOBJvar GPImage : TGPImage; JPGWidth,JPGHeight : Integer;begin GpImage := TGPImage.Create('\test.jpg'); JPGWidth := GpImage.GetWidth; JPGHeight:= GPImage.GetHeight; GPImage.Free; end; 这个问题我也正在遇到楼主的意思应该是jpg文件来源于不同的用户现在需要统一处理。我现在想的办法是,先统一处理成比如200dpi的jpg.然后打印。 有个误区,图形的像素尺寸和DPI没有任何联系只和打印尺寸发生关系PS里有误导嫌疑,就是修改DPI会自动修改像素尺寸LZ可以试验一下,修改DPI,但不改变像素尺寸,图形大小是不会发生变化的,但打印尺寸就发生变化了,印刷行业为保证打印质量一般推荐300点DPI,WINDOWS桌面默认是72点,DELPHI也是72点 "有的是200,并且尺寸是对的,有的却变成了72的分辨率" 你都知道200是对的了,不就好了?实在不行Uses GDIPAPI,GDIPOBJvar GPImage : TGPImage; JPGWidth,JPGHeight : Integer;begin GpImage := TGPImage.Create('\test.jpg'); JPGWidth := GpImage.GetWidth; JPGHeight:= GPImage.GetHeight; GPImage.Free; end;这各写法没错 ,可以使用阿,获得的就是真实的,不会有问题 三个非技术问题请大家指教 在控件中,显示另外一个控件到窗体 得到记事本的文本内容 技术文档以这种方式排版,你们觉得看得时候方便、舒适吗? 如何在多用户环境下,如何使用户读取到不相同的数据 关于最小化的问题,急急急!!! 我应该怎么样才能列出本机的网卡数目呢,包括网卡名称? 如何利用循环一次给所有mdichild窗口中的text框赋值?up有分! ado查询的问题!谢谢各位老大!急!(在线等待) 象素和毫米之间的转换问题! 请问怎样把'string'数组赋值到'PWideChar'数组?? **********如何中止线程**********
try
MyJPEG.LoadFromFile(OpenPictureDialog1.FileName);
showmessage(inttostr(MyJPEG.Height) + ' ' +inttostr(MyJPEG.Width));
finally
MyJPEG.free;
end;
如果是,那就不可思义了!如国是不同的jpg,
那只可能是扫描仪器设置不同(否则也不可思义).
GDIPAPI,GDIPOBJvar
GPImage : TGPImage;
JPGWidth,JPGHeight : Integer;
begin
GpImage := TGPImage.Create('\test.jpg');
JPGWidth := GpImage.GetWidth;
JPGHeight:= GPImage.GetHeight;
GPImage.Free;
end;
楼主的意思应该是jpg文件来源于不同的用户
现在需要统一处理。
我现在想的办法是,先统一处理成比如200dpi的jpg.
然后打印。
PS里有误导嫌疑,就是修改DPI会自动修改像素尺寸
LZ可以试验一下,修改DPI,但不改变像素尺寸,图形大小是不会发生变化的,但打印尺寸就发生变化了,印刷行业为保证打印质量一般推荐300点DPI,WINDOWS桌面默认是72点,DELPHI也是72点
实在不行
Uses
GDIPAPI,GDIPOBJvar
GPImage : TGPImage;
JPGWidth,JPGHeight : Integer;
begin
GpImage := TGPImage.Create('\test.jpg');
JPGWidth := GpImage.GetWidth;
JPGHeight:= GPImage.GetHeight;
GPImage.Free;
end;这各写法没错 ,可以使用阿,获得的就是真实的,不会有问题