怎样在控件image所加载的图形中获得 这个图像的分辨率(100分)

  • 主题发起人 主题发起人 mtraccoon
  • 开始时间 开始时间
M

mtraccoon

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
近日在做程序时,有这样一个问题,我要获得一个在image中图像的分辨率(注是jpg,bmp二种的
格式,该怎样做。谢谢。
 
image1.autosize:=true;
然后根据image1.width 和image1.height即可获得图象的分辨率
 
位分辨率、设备分辨率、网屏分辨率以及图象分辨率。
1.屏幕分辨率
屏幕分辨率就是用户在屏幕上观察图象时,所感受到的分辨率。一般屏幕分辨率是由计算机的显示卡所决定的。例如标准的VGA显示卡的分辨率是640×480,即宽640点(象素),高480点(象素)。至于较高级的显示卡,通常可以支持800×600或是1024×768点以上。
2. 位分辨率(Bit Resolution),又称位深,是用来衡量每个象素储存信息的位数。 这种分辨率决定了每次在屏幕上可显示多少种颜色。一般常见的有8位、24位或32位颜色。
3. 设备分辨率(Device Resolution),又称输出分辨率,指的是各类输出设备每英寸上可产生的点数,如显示器、喷墨打印机、激光打印机、热式打印机、绘图仪分辨率。这种分辨率通过DPI(Dot Per Inch)这个单位来衡量。一般来讲,PC显示器的设备分辨率在60~120DPI之间,而打印机的设备分辨率则在180~720DPI之间,数值越高,效果越好。
4.n网屏分辨率(Screen Resolution),又称网屏频率,指的是打印灰度级图象或分色所用的网屏上每英寸的点数。这种分辨率通过每英寸的行数(epi)来标定。
5. 图象分辨率(Image Resolution), 指的是图象中储存的信息量,这种分辨率又有多种衡量法,典型的是以每英寸的象素数(ppi)来衡量。图象分辨率和图像尺寸一起决定文件的大小及输出质量。该值越大,图象文件所占用的磁盘空间也越大,进行打印或修改图象等操作所花时间也就越多。
图象分辨率以比例关系影响着文件的大小,即文件大小与其图象分辨率的平方成正比。如果保持图象尺寸不变,将其图象分辨率提高一倍,则其文件大小增大为原来的四倍。例如原图象的文件大小为841KB,图像分辨率为72ppi,保持图像尺寸不变,用图象处理软件提高其图象分辨率到144ppi,这时文件大小变为3364KB。
图象分辨率也影响到图象在屏幕上的显示大小。如果在一台设备分辨率为72DPI的显示器上将图象分辨率从72ppi增大到144ppi(保持图象尺寸不变),那么该图象将以原图象实际尺寸的两倍显示在屏幕上。
一般来说,降低图象分辨率后再增大是不明智的。由于降低图象分辨率时将删除图象中的一些原始信息,然后在增大其分辨率时又要重新计算丢失象素的色值以便增加信息,这时重新增大分辨率的图象就没有原来的高分辨率图象效果好了。
6.打印机分辨率
打印机分辨率又称为输出分辨率,所指的是打印输出的分辨率极限,而打印机分辨率也决定了输出的质量。打印机分辨率越高,除了可以减少打印的锯齿边缘之外,在灰度的半色调表现上也会较为平滑。
打印机的分辨率通常是以dpi(每英寸中所包含的点数)来表示。目前市场上的打印机当中,24针的针式打印机的分辨率约为180dpi;而喷墨式打印机的分辨率可达300,甚至720dpi,不过如果真要打印这么高的分辨率,所使用的也必须是特殊的纸张;所以喷墨式打印机比较适合于个人作彩色输出使用。
除了喷墨打印机之外, 激光打印机的分辨率又要高一筹。较老的机型通常在300―360dpi之间,近来由于超微细碳粉技术的成熟,使得分辨率可以达到600甚至1200dpi,作为专业的排版输出这已经绰绰有余了。
在专业输出上,也经常会使用到热升华彩色打印机作为输出设备,其分辨率的极限约为300点。
7.扫描仪分辨率
扫描仪分辨率指的是扫描仪的解析极限,表示的方法和打印机分辨率相当类似,一般也以dpi来表示。不过正如前面所指出的那样,这里的点是指样点,与打印机的输出点是不同的。扫描仪的分辨率在纵向是由步进马达的精度来决定的,而横向则是由感光元件的密度来决定的。
一般台式扫描仪的分辨率可以分为两种规格,第一种是光学分辨率,指的是扫描仪的硬件所真正扫描到的图象分辨率,目前市场上的产品级可以达到800-1200dpi以上。第二种则是输出分辨率,这是通过软件强化以及内插补点之后所产生的分辨率,大约为光学分辨率的3-4倍左右。所以当你见到一台分辨率号称2400dpi的扫描仪时,不要大惊小怪,先要看清楚这是光学分辨率还是输出分辨率。
 
在DElphi中,怎样能得到图像的分辨率。是不是图像的高*宽,还是图像的高*宽*象素数,
象素数又怎么求?,请指教。
 
图像的分辨率不应该是指图像的高和宽,具体的我也记不清了,huazai应该说的不错吧
应该是指信息量,图像所承载的信息越多,图像越清晰,我觉得象素点的密集程度和色彩的
分辨率(就是huazai说的位分辨率)都应该考虑
 
有什么方法可以实现获得图像的分辨率,在DELPHI中?????????
 
这是reboot网友的法子,不知道可行否:
BMP文件头偏移26H和2AH开始的每四个字节(DWORD)
对应水平分辨率和垂直分辨率(每米Pixels个数)。
通常取值为0B12(72dpi)和0EC3(96dpi)
var
FormImage: TBitmap;
Info: PBitmapInfo;
InfoSize: DWORD;
Image: Pointer;
ImageSize: DWORD;
Bits: HBITMAP;
DIBWidth, DIBHeight: Longint;
px,py:integer;
Size: TPoint;
begin
FormImage := Tbitmap.Create;
formimage.loadfromfile('xxxxxxxx');
try
Bits := FormImage.Handle;
GetDIBSizes(Bits, InfoSize, ImageSize);
Info := AllocMem(InfoSize);
Image := AllocMem(ImageSize);
GetDIB(Bits, 0, Info^, Image^);

with Info^.bmiHeader do
begin
DIBWidth := biWidth;
DIBHeight := biHeight;
px:=biXPelsPerMeter; //每米的象素
py:=biXPelsPerMeter; //每米的象素
end;
finally;
formImage.free;

 
有没有办法将BMP文件格式转为PCX格式同是颜色设为2种.
这个问题搞了好久,还没有算法出来.
 
多人接受答案了。
 
如何才能提高分辨率呢ppi
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部