可以借助第三方软件,比如美图秀秀软件。
bmp是一种与硬件设备无关的图像文件格式,因此在几乎所有图像软件都支持bmp图像格式,在打开bmp文件时,推荐使用系统自带的画图工具、图片查看工具,PS软件、美图秀秀等都可以打开,总之目前所有的主流图片查看工具都可以打开bmp图片文件。
典型的BMP图像文件由四部分组成:
1:位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息;
2:位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息;
3:调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板;
4:位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。
可以借助第三方软件,比如美图秀秀软件。
bmp是一种与硬件设备无关的图像文件格式,因此在几乎所有图像软件都支持bmp图像格式,在打开bmp文件时,推荐使用系统自带的画图工具、图片查看工具,PS软件、美图秀秀等都可以打开。
总之目前所有的主流图片查看工具都可以打开bmp图片文件。
BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。
它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。
BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。
由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。
典型的BMP图像文件由四部分组成:
1:位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息。
2:位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息。
3:调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板。
4:位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。
本回答被网友采纳//方法一:
CGImageRef GetImageData()
{
unsigned char* pData=NULL;
int i = 0;
int bitsPerComponent = 8;
int bitsPerPixel = 24;
int bytesPerRow = 3 * SCREEN_METRIC_WIDTH;
NSInteger myLCDDataLength =
SCREEN_METRIC_WIDTH * SCREEN_METRIC_HEIGHT * 2;
CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();
CGBitmapInfo bmpInof = kCGBitmapByteOrderDefault;
CGColorRenderingIntent renderingIntent = kCGRenderingIntentDefault;
CGDataProviderRef provider = nil;
void*pBuffer = malloc(BMP_SIZE + BMP_HEADER_LENGTH);
for(pData = pBuffer, i = 0; i < SCREEN_METRIC_WIDTH * SCREEN_METRIC_HEIGHT; ++i)
{
*pData++ = 0xFF; //R
*pData++ = 0x0; //G
*pData++ = 0x0; //B
}
provider = CGDataProviderCreateWithData(NULL, pBuffer, myLCDDataLength, NULL);
return CGImageCreate(SCREEN_METRIC_WIDTH,SCREEN_METRIC_HEIGHT,
bitsPerComponent,
bitsPerPixel,
bytesPerRow,
colorSpaceRef,
bmpInof,
provider,
NULL,
NO,
renderingIntent);
}
void GUI_DrawBMP()
{
CGImageRef m_cgImage = GetImageData();
pUIImage = [ [ UIImage alloc] initWithCGImage:m_cgImage];
[pUIImage drawAtPoint:CGPointMake(0.0f,0.0f)];
[pUIImage dealloc];
}
//方法二:
const char* const g_pszFilePath = "/example.bmp";
FILE * pFile = fopen(g_pszFilePath, "rb");
if(NULL != pFile)
{
void*pBuffer = malloc(BMP_SIZE + BMP_HEADER_LENGTH);
if (NULL != pBuffer)
{
fseek(pFile , 0, SEEK_SET);
fread(pBuffer, 1, 54, pFile);
fclose(pFile);
memset(pBuffer + BMP_HEADER_LENGTH, BMP_SIZE);
NSData* pNSData = [ [NSData alloc] initWithBytes:pBuffer
length: BMP_SIZE + BMP_HEADER_LENGTH];
UIImage* pUIImage = [ [ UIImage alloc] initWithData:myNSData];
[pUIImage drawAtPoint:CGPointMake(0.0f,0.0f)];
[pNSData dealloc];
free(pBuffer);
}
}