如何知道一个图象的大小 (50分)

  • 主题发起人 主题发起人 tennic10
  • 开始时间 开始时间
T

tennic10

Unregistered / Unconfirmed
GUEST, unregistred user!
如何知道一个图象的大小?有什么函数吗?麻烦请告知.
就是知道一幅图象的 大小.
 
一个笨办法:
在form中加入一个image控件,设置autosize为真。调入图片,检查width和height就可以了。
 
你是要文件大小还是要它的Width和Height?
 
我想知道一个图片的大小,是多少字节。谢谢!
 
可以读取文件的长度
如果是动态的话
大概是
width*height*2^n
其中n是颜色的位数
 
你既然是想得到它的大小的话,就把它当作一个文件,然后有各种方法可以得到它的大小了
 
可以savetofile或savetostream然后通过filesize或知道大小!(笨办法,哈哈!)
 
gh800的方法。
 
创建tbitmap或者tjpegimage
可以读出大小,宽度等等
不过还是太吃资源了
图片大的时候载入惨不忍睹
要求高的话还是苦读文件头格式吧
 
var
FWidth,FHeight :Integer;
FSize :Byte;
begin
////////width and height
FWidth :=Image.Picture.Bitmap.Width;
FHeight :=Image.Picture.Bitmap.Height;
///////byte sizes
if Image.Picture.Bitmap.PixelFormat=pf24bit then //真彩 : 每个像素占3个字节
FSize :=FWidth*FHeight*3;
if Image.Picture.Bitmap.PixelFormat=pf8bit then //256色 : 每个像素占1个字节
FSize :=FWidth*FHeight;
end;
 
Var
tms: TMemoryStream;
begin
tms:=TMemoryStream.Create;
tms.LoadFromFile(*);
Edit1.Text:=IntToStr(tms.Size);
tms.Free;
end;
 
建议用Tbitmap读入图象文件,读出头文件信息即可,我用bcb做过,可以的.
用Width*Height*3对于24位的图象来说计算不够准确,有可能出现象素缺少.
有问题在联系.chenxi0209_cn@sina.com
 
我用gh800的方法。
 
多人接受答案了。
 
后退
顶部