Как преобразовать UIImage в байтовый массив или base64encoding? - PullRequest
0 голосов
/ 25 августа 2011

У меня есть изображение, которое я хочу отправить в виде байтового массива на сервер. Я хочу знать, как преобразовать uiimage в байтовый массив?Я должен отправить параметр как

<byteArrayIn>base64Binary</byteArrayIn> в веб-службу

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 25 августа 2011
UIImage *img = ...;
CGFloat quality = 0.85;
NSData *jpegdata = UIImageJPEGRepresentation(img,quality);

или

NSData *pngdata = UIImagePNGRepresentation(img);
0 голосов
/ 22 октября 2013

Вот простая функция для iOS для преобразования из UIImage в байтовый массив ->

+ (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);
    CGImageRelease( imageRef);
    CGColorSpaceRelease( colorSpace);

    return imageData;
}

, как только вы получите данные байтового массива, алгоритм для кодирования base64 прост в реализации, и вы можете прочитатьна это в Википедии.Возможно, есть более простой способ кодирования в base64, я не уверен.http://en.wikipedia.org/wiki/Base64

...