Во-первых, вы можете получить объект, содержащий NSData либо PNG или JPEG представление данных изображения с помощью функции UIImagePNGRepresentation и UIImageJPEGRepresentation.
// To get the data from a PNG file
NSData *dataForPNGFile = UIImagePNGRepresentation(yourImage);
// To get the data from a JPEG file
NSData *dataForPNGFile = UIImageJPEGRepresentation(yourImage, 0.9f);
(для получения дополнительной информации см: UIImage Class Reference)
Для завершения загрузки данных с вашего iPhone на сервер вы можете сделать это:
- (void)sendImage {
NSData *postData = [nsdata from your original image];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
// Init and set fields of 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:postData];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (connection) {
// Return data of the request
NSData *receivedData = [[NSMutableData data] retain];
}
[request release];
}
Спасибо за ваш ответ. В вашем руководстве NSData получен из файла PNG/JPEG, который существует в любом месте. Но я хочу нарисовать непосредственно подпись на iPhone и получить NSData. Что мне нужно сделать? – MartinJoo
Что делать, если вы также хотели установить пару варов на сервере в своем почтовом запросе? – joshue
Этот вопрос почти 2 года! Чтобы ответить на оригинальные и последующие вопросы плаката: В ответе Яника вы увидите значение «yourImage». Это значение должно представлять UIImage вашего изображения. Итак, если вы нарисовали изображение на экране и захватили снимок экрана в UIImageView с именем «myImageView», вы будете ссылаться на UIImage, содержащиеся в этом ImageView, через «myImageView.image». Затем UIImage будет переведен/сериализован в двоичные данные (с использованием метода выше), который будет добавлен к вашему URLRequest. Надеюсь, что это прояснит ситуацию. :) – user298261