谁会用程序 读取一个bmp图片??用C++,Java 都行 5
2个回答
展开全部
读取的话很简单,用一下windows库即可
#include <windows.h>
using namespace std;
typedef unsigned char BYTE;
BYTE* read(){
HBITMAP hBMP;
BITMAP BMP;
//载入图像
hBMP=(HBITMAP)LoadImage(GetModuleHandle(NULL), "文件名写这里", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE );
if (!hBMP){
printf("图像读入错误");
exit(0);
}
GetObject(hBMP, sizeof(BMP), &BMP);
//这样就得到图像的宽高了
int WIDTH=BMP.bmWidth, HEIGHT=BMP.bmHeight;
//注意这里,如果是灰度图这样就好,如果是三通道彩色图应该乘3,四通道RGBA图乘4
int size=WIDTH*HEIGHT;
BYTE* bmpDATA = new BYTE[size];
memcpy(bmpDATA, BMP.bmBits, size);
}
#include <windows.h>
using namespace std;
typedef unsigned char BYTE;
BYTE* read(){
HBITMAP hBMP;
BITMAP BMP;
//载入图像
hBMP=(HBITMAP)LoadImage(GetModuleHandle(NULL), "文件名写这里", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE );
if (!hBMP){
printf("图像读入错误");
exit(0);
}
GetObject(hBMP, sizeof(BMP), &BMP);
//这样就得到图像的宽高了
int WIDTH=BMP.bmWidth, HEIGHT=BMP.bmHeight;
//注意这里,如果是灰度图这样就好,如果是三通道彩色图应该乘3,四通道RGBA图乘4
int size=WIDTH*HEIGHT;
BYTE* bmpDATA = new BYTE[size];
memcpy(bmpDATA, BMP.bmBits, size);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询