bmp文件怎么在ios打开

如题所述

可以借助第三方软件,比如美图秀秀软件。

bmp是一种与硬件设备无关的图像文件格式,因此在几乎所有图像软件都支持bmp图像格式,在打开bmp文件时,推荐使用系统自带的画图工具、图片查看工具,PS软件、美图秀秀等都可以打开,总之目前所有的主流图片查看工具都可以打开bmp图片文件。

典型的BMP图像文件由四部分组成:

1:位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息;

2:位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息;

3:调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板;

4:位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-11-06

可以借助第三方软件,比如美图秀秀软件。

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位的使用调色板中颜色索引值。

本回答被网友采纳
第2个回答  2021-08-29

    //方法一:  

    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);  

    }  

    }  

本回答被提问者采纳
相似回答