Отправить изображение на сервер в виде двоичных данных - PullRequest
4 голосов
/ 24 февраля 2010

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

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

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

Ответы [ 2 ]

12 голосов
/ 24 февраля 2010

Сначала вы можете получить объект 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 )

Чтобы завершить загрузку данных с вашего 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 голосов
/ 01 сентября 2012

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

и используйте следующее для преобразования вашего UIImage объекта в NSData

// 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...