
在 C 语言中,可以使用结构体来表示 Bitmap,其中结构体中的成员变量可以表示 Bitmap 的属性,如宽度、高度、位数、每行字节数等。为 Bitmap 附加数据的方式,通常可以采用以下两种方法:
将 Bitmap 数据与结构体一起打包存储
可以在结构体中添加一个指向数据区域的指针,将 Bitmap 数据与结构体一起打包存储。在读取 Bitmap 数据时,先读取结构体,然后再通过指针读取数据区域中的具体数据。
例如,下面是一个简单的 Bitmap 结构体定义:
cCopy code
typedef struct {
int width;
int height;
int bits_per_pixel;
int bytes_per_line;
char data;
} Bitmap;
可以在调用函数或者使用指针 *** 作等方式时,将 Bitmap 数据附加到该结构体的 data 成员上。
将 Bitmap 数据存储在文件中
可以将 Bitmap 数据保存在一个文件中,并在结构体中添加一个成员变量用来存储该文件名。在读取 Bitmap 数据时,先读取结构体,然后再打开文件,读取文件中的数据。
例如,下面是一个简单的带文件名的 Bitmap 结构体定义:
cCopy code
typedef struct {
int width;
int height;
int bits_per_pixel;
int bytes_per_line;
char filename[256];
} Bitmap;
在调用函数或者使用指针 *** 作等方式时,可以将 Bitmap 数据存储到文件中,并将文件名附加到该结构体的 filename 成员上。
需要注意的是,在使用以上方法时,需要确保 Bitmap 数据的正确性和完整性,并遵循 Bitmap 的格式规范。同时也需要根据实际情况选择合适的方法和技术来附加 Bitmap 数据。
BITMAP bmp;
int bmp_width;
int bmp_height;
if(GetObject(hBmp,sizeof(BITMAP),(LPSTR)&bmp))
{
bmp_width=bmpbmWidth;
bmp_height=bmpbmHeight;
}
如果是ViewGroup控件,就递归计算子控件的大小,把所有子控件的值相加。
如果是是View,这个取决于你的onMeasure(int width,int height)方法,其里面有个setMeasuredDimension(int width,int height)就是最终定下大小的方法,在调用这个方法前,View会调用getDefaultSize(int size ,int widthMeasureSpec);它会根据父控件给与的空间 和自身需要最小控件的值比较选取最小的, 只是View是默认的方法,也就是 你给它多少 它就要多少,它不会说wrap_content就会出个值,你给他300,他就300,你给他wrap_content,因为在relativeLayout所以空间充足,其大小直接是屏幕的width。
你重写View时,可以在onMeasure()中
记录 thisgetMeasuredWidth()和thisgetMeasuredHeight()2个值,
如果你要画一张填满的图
要么用ImageView scaleType为FIT_XY
或者自定义的:
src=new Rect(0,0,bmpgetWidth(),bmpgetHeight());
dst=new Rect(0,0,thisgetMeasuredWidth(),thisgetMeasuredHeight());
自定View就是用canvasdrawBitmap(bmp,src,dst,null);
一般来说一个点被精确的认定为1/72英寸,在WPF中,采用的设备无关单位即1/96英寸
所以程序中获取的大小 比真实的大小要大一点, 获取到大小后进行相应的转换即可获得原来的尺寸 如: height=height72/96
以上就是关于c#中如何将给bitmap附数据全部的内容,包括:c#中如何将给bitmap附数据、C++ 获取图片宽高、自定义控件的时候怎么获得宽高等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)