2010-02-24 3 views
4

Я хочу сделать приложение iPhone для отправки изображения на мой сервер.Отправить изображение на сервер как двоичные данные

Я хочу нарисовать что-то на iPhone (например: подпись) как изображение для бинарного изображения POST на мой сервер (сервер JSP). Скажите, пожалуйста, что я должен делать?

  • Как пользоваться iPhone UI?
  • как сделать двоичные данные изображения, и т.д.

ответ

12

Во-первых, вы можете получить объект, содержащий 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]; 
} 
+0

Спасибо за ваш ответ. В вашем руководстве NSData получен из файла PNG/JPEG, который существует в любом месте. Но я хочу нарисовать непосредственно подпись на iPhone и получить NSData. Что мне нужно сделать? – MartinJoo

+2

Что делать, если вы также хотели установить пару варов на сервере в своем почтовом запросе? – joshue

+0

Этот вопрос почти 2 года! Чтобы ответить на оригинальные и последующие вопросы плаката: В ответе Яника вы увидите значение «yourImage». Это значение должно представлять UIImage вашего изображения. Итак, если вы нарисовали изображение на экране и захватили снимок экрана в UIImageView с именем «myImageView», вы будете ссылаться на UIImage, содержащиеся в этом ImageView, через «myImageView.image». Затем UIImage будет переведен/сериализован в двоичные данные (с использованием метода выше), который будет добавлен к вашему URLRequest. Надеюсь, что это прояснит ситуацию. :) – user298261

0

Используйте метод drawrect делать подписи a UIImage. Для этого вы должны использовать UITouch делегат

и использовать следующее для преобразования объекта в UIImageNSData

// 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); 
Смежные вопросы