Я хочу передать растровое изображение, преобразовать в JPEG (что я могу сделать) и опубликовать его через http на php-сервер. После просмотра php-скрипта на сервере он вообще не использует base64 endcoding / decoding. Я видел и использовал кодирование / декодирование Base64, как указано ниже, но API сервера его не принимает. Я также сомневаюсь, что в настоящее время я могу обновить API на сервере php. API на сервере в настоящее время поддерживают 32-битные iPhone, в случае, если это дает ключ.
Также есть ли проблемы с самим изображением?
Я не видел никакого декодирования / кодирования в php-коде, кроме этого стандартного ‘move_uploaded_file’, и я не программист php.
Это не работает для конкретного php-сервера.
public static String encodeTobase64(Bitmap image) {
Bitmap immage = image;
Integer quality = 80;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
immage.compress(Bitmap.CompressFormat.JPEG, quality, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
return imageEncoded;
}
public static Bitmap decodeBase64(String input) {byte[] decodedByte = Base64.decode(input, 0);
return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
}
Я также попробовал кодировщик / декодер Base32.
public static String encodeToBase32(Bitmap image) {
Bitmap immage = image;
Integer quality = 90;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
immage.compress(Bitmap.CompressFormat.JPEG, quality, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base32.encode(b);
return imageEncoded;
}
а также попробовал просто массив байтов, изменив 2-ю до последней строки выше
String imageEncoded = String.valueOf(b);
Есть ли другие способы отправить изображение?
Задача ещё не решена.
Других решений пока нет …