C#如何得到一个Image对象所占的字节数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#如何得到一个Image对象所占的字节数?相关的知识,希望对你有一定的参考价值。

Image img = Image.FromFile(url);有个这样的对象,我怎么知道img所占的字节?

Image对象只是存在于内存中的,而且是二进制的数据,只有生成了图片保存到硬盘中后才有确定的大小,因为不同的算法生成的大小是不一样的,不过你可以试试看Image对象占用的字节数,然后和实际生成文件比较一下大小会不会差别很大,如果不会的话就可以当成一个近似值,或者说你也可以保存成文件,获取大小后再把文件删除,如果图片不是大的很离谱的话这种方式也不会很慢的 参考技术A 方法应该是,生成图之后,再用图的地址,用IO去检查文件的大小.追问

转为byte数组然后得到length不可以吗?

追答

转化为字节数组?恩,是可以的,我之前考虑的是关于图片的上传于下载,因为关于图片的操作会经常用到这些功能,所以我一看到这个就想到关于文件大小的限制与传输!

参考技术B //将文件转为二进制数据
public byte[] picFile2bytes(string picFilePath)

FileStream fs = new FileStream(picFilePath, FileMode.Open, FileAccess.Read);
byte[] bytePhoto = new byte[fs.Length];
fs.Read(bytePhoto, 0, (int)fs.Length);
fs.Close();
return bytePhoto;
本回答被提问者采纳

指针变量所占的字节数

/*
sizeof(数据类型),返回值就是该数据类型所占的字节数
例子: sizeof(int) = 4
sizeof(char) = 1
sizeof(double) = 8
sizeof(变量名),返回值就是该变量所占的字节数
总结:
一个指针变量,无论它指向的变量占几个字节,该指针变量本身只占4个字节
*/

#include <stdio.h>

int main(void)
{
  int a;
  char b;
  double c;
  int * p = &a;
  char * q = &b;
  double * r = &c;
  printf("%d %d %d ", sizeof(double *), sizeof(q), sizeof(r));

  return 0;
}


















以上是关于C#如何得到一个Image对象所占的字节数?的主要内容,如果未能解决你的问题,请参考以下文章

Java中文字符所占的字节数是多少?

Java中文字符所占的字节数

java中的变量各占得字节数

16位,32位,64位机数据类型所占的字节数

在c语言中,int,char,short三种类型数据在内存中所占的字节数由啥决定

在C语言中,一个char数据在内存中所占字节数为,其数值范围为 ?