如何获取图片的分辨率(50分)

  • 主题发起人 主题发起人 sst0710
  • 开始时间 开始时间
S

sst0710

Unregistered / Unconfirmed
GUEST, unregistred user!
如何获取JPEG图片的分辨率
 
就是图片的宽度和长度。
 
什么样的图片啊,如果能够知道象素可以自己计算啊。象素/英寸=分辨率
如果知道文件格式,他们可能会把图片的分辨率存在头位置:
如BMP
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本结构所占用字节数
LONGbiWidth; // 位图的宽度,以像素为单位
LONGbiHeight; // 位图的高度,以像素为单位
WORD biPlanes; // 目标设备的级别,必须为1
WORD biBitCount// 每个像素所需的位数,必须是1(双色),
// 4(16色),8(256色)或24(真彩色)之一
DWORD biCompression; // 位图压缩类型,必须是 0(不压缩),
// 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一
DWORD biSizeImage; // 位图的大小,以字节为单位
LONGbiXPelsPerMeter; // 位图水平分辨率,每米像素数
LONGbiYPelsPerMeter; // 位图垂直分辨率,每米像素数
DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数
DWORD biClrImportant;// 位图显示过程中重要的颜色数
} BITMAPINFOHEADER;
是不是有。
 
用IMAGE读入图片,把IMAGE的STRATCH属性设成TRUE,然后去读IMAGE的WIDTH和HIGHT就知道了。
 
读不出来
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=963644
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2893774
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3146387
 
可以的,给你源码~~
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtDlgs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
OpenPictureDialog1: TOpenPictureDialog;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
ShowMessage('分辨率是'+IntToStr(Image1.Picture.Bitmap.Width)+'x'+IntToStr(Image1.Picture.Bitmap.Height));
end;

end.
 
uses
jpeg;

procedure TForm1.Button1Click(Sender: TObject);
var
jpg:TJPEGImage;
begin
jpg:=TJPEGImage.Create;
try
jpg.LoadFromFile('c:/aaa.jpg');
ShowMessage(Format('宽%d像素 高%d像素',[jpg.Width,jpg.Height]));
finally
jpg.Free;
end;
end;
 
我要的是分辨率,不是宽度和高度
 
摆脱LZ,你应该知道什么是分辨率吧?这是常识啊。高度和宽度不就是一个个像素和嘛,分辨率不就是针对像素的嘛。lz,你肯定没有照我的code做,你可以看看啊。
 
后退
顶部