【问题标题】:UIImage to byte arrayUIImage 到字节数组
【发布时间】:2011-11-09 11:44:33
【问题描述】:

我正在创建一个将图像上传到服务器的应用程序。它必须在 XML 上发送字节数组。如何将字节数组放入 NSString?

谢谢!

【问题讨论】:

    标签: iphone sdk nsstring uiimage bytearray


    【解决方案1】:

    您可以将 UIImage 转换为 NSData 对象,然后从那里提取字节数组。下面是一些示例代码:

    UIImage *image = [UIImage imageNamed:@"image.png"];
    NSString *byteArray = [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
    

    如果您使用的是 PNG 图像,您可以使用如上所示的 UIImagePNGRepresentation 函数,或者如果您使用的是 JPEG 图像,您可以使用 UIImageJPEGRepresentation 函数。文档可在UIImage Class Reference

    上获得

    【讨论】:

    • 这对我很有帮助。谢谢你,Suhail,你的帖子。
    【解决方案2】:

    使用NSData *data = UIImagePNGRepresentation(image); 可以将图像转换为数据,现在可以使用getBytes:length:getBytes:range: 将数据转换为字节

    【讨论】:

      【解决方案3】:

      这里有一个简单的iOS从UIImage转换为unsigned char*字节数组的函数-->

      + (unsigned char*)UIImageToByteArray:(UIImage*)image; {
      
          unsigned char *imageData = (unsigned char*)(malloc( 4*image.size.width*image.size.height));
      
          CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
      
          CGImageRef imageRef = [image CGImage];
          CGContextRef bitmap = CGBitmapContextCreate( imageData,
                                                      image.size.width,
                                                      image.size.height,
                                                      8,
                                                      image.size.width*4,
                                                      colorSpace,
                                                      kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst);
      
          CGContextDrawImage( bitmap, CGRectMake(0, 0, image.size.width, image.size.height), imageRef);
      
          CGContextRelease( bitmap);
          CGColorSpaceRelease( colorSpace);
      
          return imageData;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-19
        • 1970-01-01
        • 2013-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-04
        • 1970-01-01
        相关资源
        最近更新 更多