5

我正在做一个项目,我需要将图像上传到我的服务器。我想将图像的二进制数据存储到数据库中的 BLOB 数据类型字段。因此我需要将我的图像转换为二进制格式。这样它就可以保存在服务器数据库中。

那么如何将图像转换为二进制格式呢?请指教。

4

2 回答 2

13

您可以使用CoreGraphics' 方法UIImagePNGRepresentation(UIImage *image),该方法返回NSData并保存它。如果您想将其转换为再次使用方法UIImage创建它。[UIimage imageWithData:(NSData *data)]

将您的 UIImage 发送到服务器的演示

- (void)sendImageToServer {
       UIImage *yourImage= [UIImage imageNamed:@"image.png"];
       NSData *imageData = UIImagePNGRepresentation(yourImage);
       NSString *postLength = [NSString stringWithFormat:@"%d", [imageData length]];

       // Init the URLRequest
       NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
       [request setHTTPMethod:@"POST"];
       [request setURL:[NSURL URLWithString:[NSString stringWithString:@"http://yoururl.domain"]]];
       [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
       [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
       [request setHTTPBody:imageData];

       NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
       if (connection) {
       }
       [request release];
 }
于 2013-05-06T10:42:55.043 回答
0

采用:

NSData *data = UIImageJPEGRepresentation(image, 1.0);
//OR
NSData *data = UIImagePNGRepresentation(image);

根据要求。

于 2013-05-06T11:14:01.497 回答