博客
关于我
Objective-C实现BMP图像旋转180度(附完整源码)
阅读量:799 次
发布时间:2023-02-17

本文共 1836 字,大约阅读时间需要 6 分钟。

Objective-C??BMP????180?

BMP??????

BMP??????????????????????????????????????????????

????

????????Objective-C?????BMP???????180??

#import 
@interface BMPHelper : NSObject+ (UIImage *)rotateBMP:(NSData *)bmpData;@end
#import "BMPHelper.h"@implementation BMPHelper+ (UIImage *)rotateBMP:(NSData *)bmpData {    // 1. ??BMP??    NSBitmapImageData *bitmapData = [NSBitmapImageData dataWithData:bmpData];    // 2. ??????BMP????    void *bitmapBuffer = malloc(bitmapData.bytesPerRow * bitmapData.height);    // 3. ??????BMP??    NSImage *rotatedImage = [[NSImage alloc] initWithData:bitmapData];    // 4. ??????    for (int y = 0; y < bitmapData.height; y++) {        for (int x = 0; x < bitmapData.width; x++) {            // ??180???????(x, y)??(x, height - y - 1)            // ????????????            // ??????????BMP???????        }    }    free(bitmapBuffer);    return [rotatedImage rotatedImage];}@end

?????????????BMP????????????????????BMP?????????????????

????????

?????????????????BMP??????????rotateBMP????????????????????

NSData *bmpData = [NSData dataWithContentsOfFile:@"yourBMPFile.bmp"];UIImage *rotatedImage = [BMPHelper rotateBMP:bmpData];[rotatedImage setImage:UIImageView * imageView];

??????????????BMP??????????BMPHelper????????????????????UI????

BMP?????????

BMP?????????????

  • ????File Header??????????????reserved?unused?format???bits per pixel?width?height????
  • ????Information Header????????????????planes????
  • ?????Pixel Data????????????
  • ???BMP?????????????????????????????????????????????

    ????????BMP????????????????????????

    ?????????

    ?????????????????

  • ???????????????????????????????????
  • ??????????????????????????
  • ???????????????????????????
  • ??????????????????

  • ?????????ARC?????????
  • ????????????????????
  • ??????????????????
  • ????????????????BMP????????????????????????

    ??????????????????????????????????????

    转载地址:http://fcnfk.baihongyu.com/

    你可能感兴趣的文章
    MySQL数据库与Informix:能否创建同名表?
    查看>>
    MySQL集群解决方案(4):负载均衡
    查看>>
    MySQL高级-视图
    查看>>
    nacos集群搭建
    查看>>
    Nessus漏洞扫描教程之配置Nessus
    查看>>
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    查看>>
    Netpas:不一样的SD-WAN+ 保障网络通讯品质
    查看>>
    Netty WebSocket客户端
    查看>>
    Netty工作笔记0011---Channel应用案例2
    查看>>
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0050---Netty核心模块1
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>
    Netty常见组件二
    查看>>
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty核心模块组件
    查看>>
    Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
    查看>>
    Netty源码—2.Reactor线程模型一
    查看>>
    Netty源码—4.客户端接入流程一
    查看>>
    Netty源码—4.客户端接入流程二
    查看>>
    Netty源码—5.Pipeline和Handler一
    查看>>