В настоящее время я пытаюсь сделать следующее:
Сделайте снимок, сожмите его в PNG, закройте с помощью Base64 и отправьте в базу данных через PHP.Это все работает как шарм.Я также могу декодировать строку Base64 и отлично отображать фотографию.
Однако, похоже, проблемы заключаются в том, что при просмотре изображения в браузере, оно не совпадает с размером (или, по крайней мере,Я думаю).
Это изображение, которое я взял, закодировано и отображено в браузере:
Независимо от телефона (также протестировано на Galaxy SII), проблема все еще остается.Ребята, вы знаете, что может происходить?Вот некоторые идеи, которые у меня есть, но я не уверен ... 1. Слишком сильное сжатие изображения - или когда оно сжимается, оно что-то меняет 2. Кодирование / декодирование Base64 портит фотографию и не отображает ее правильно 3. Когда я размещаюизображение в представлении изображения изменяет размер.
Опять же, кажется, что полное изображение не передается, потому что нет никакого изображения, даже если изображение Galaxy sII выглядит таким маленьким.
Вот код, который я использую: Android:
// CONVERT:
ByteArrayOutputStream bao = new ByteArrayOutputStream();
picture.compress(Bitmap.CompressFormat.PNG, 100, bao);
Log.d(TAG, "AFTER. Height: " + picture.getHeight() + " Width: " + picture.getWidth());
final byte[] ba = bao.toByteArray();
//encode to string
String photoTest = Base64.encodeToString(ba, Base64.DEFAULT);
//Camera on activity for result - save it as a bmp and place in imageview
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_REQUEST) {
// do something
}
if (resultCode == Activity.RESULT_OK) {
Log.d(TAG, "result ok");
Bundle b = data.getExtras();
picture = (Bitmap) b.get("data");
imageView.setImageBitmap(picture);
}
}
ПРОСМОТР ИЗОБРАЖЕНИЯ В ANDROID:
<ImageView
android:id="@+id/imageView1"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/icon"/>
PHP:
$image = base64_decode($_POST['image_data']);
Спасибо за вашу помощь!