как декодировать файлы изображений в кодировке Base 64 в приложениях ipad? - PullRequest
0 голосов
/ 02 ноября 2010

Я делаю приложение для ipad-приложения, отправляющее отсканированные фотографии и изображения подписей, которое работает нормально, но при их загрузке у меня возникает проблема, с другой стороны, они кодируют файлы изображений на базу 64, но я не понимаю, как их декодироватьфайлы изображений на стороне клиента.

Спасибо,

Кумар Ю.Р.

1 Ответ

0 голосов
/ 02 ноября 2010

Из этого сообщения http://www.cocoabob.net/?p=7

Я использую кодировщик и декодер base64, чтобы поместить двоичные данные изображений в данные XML, а затем передать нетекстовые данные в виде текстовых данных между сервером и клиентом.

Вот пример в моем проекте iPhone.

base64.zip

Загрузите эти два файла и импортируйте их в свой проект и включите файл заголовка вфайл вашего класса.

(Спасибо Джонатану Уайту, который написал его 18 марта 2003 г.)

В заголовочном файле base64 есть четыре метода.

extern size_t EstimateBas64EncodedDataSize(size_t inDataSize);
extern size_t EstimateBas64DecodedDataSize(size_t inDataSize);
extern bool Base64EncodeData(const void *inInputData, size_t inInputDataSize, char *outOutputData, size_t *ioOutputDataSize, BOOL wrapped);
extern bool Base64DecodeData(const void *inInputData, size_t inInputDataSize, void *ioOutputData, size_t *ioOutputDataSize)

Вот использование декодирования строковых данных.

NSString *stringValue = /*the UTF8 string parsed from xml data*/
Byte inputData[[stringValue lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];//prepare a Byte[]
[[stringValue dataUsingEncoding:NSUTF8StringEncoding] getBytes:inputData];//get the pointer of the data
size_t inputDataSize = (size_t)[stringValue length];
size_t outputDataSize = EstimateBas64DecodedDataSize(inputDataSize);//calculate the decoded data size
Byte outputData[outputDataSize];//prepare a Byte[] for the decoded data
Base64DecodeData(inputData, inputDataSize, outputData, &outputDataSize);//decode the data
NSData *theData = [[NSData alloc] initWithBytes:outputData length:outputDataSize];//create a NSData object from the decoded data
...