2015-07-12 4 views
2

Проверено на: Android 4.2 & Android 5.1.1андроид Cordova-плагин-камера добавляет черный Backgound на PNG

Plugin: https://github.com/apache/cordova-plugin-camera

Когда мы импортировать PNG с альфа (прозрачный) слой из библиотеки его добавляет черный фон автоматически.

Знаете ли вы, как заменить этот черный фон на белый в строке base64, возвращаемой плагином?

код используется:

var options = { 
         quality: 95, 
         destinationType: Camera.DestinationType.DATA_URL, 
         sourceType: Camera.PictureSourceType.PHOTOLIBRARY, 
         allowEdit: true, 
         encodingType: Camera.EncodingType.PNG, 
         saveToPhotoAlbum: false 
        }; 

ответ

0

Я нашел способ сделать это чтение Android Bitmap: Convert transparent pixels to a color

Затем применяется к нашему коду, вы должны обновить CameraLauncher.java:

Добавить LIBS редактировать:

import android.graphics.Canvas; 
import android.graphics.Color; 

Затем добавьте строку 595 (если вы добавили два импорт) этот код взят и адаптирован из другого потока:

Bitmap imageWithBG = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(),bitmap.getConfig()); // Create another image the same size 
imageWithBG.eraseColor(Color.WHITE); // set its background to white, or whatever color you want 
Canvas canvas = new Canvas(imageWithBG); // create a canvas to draw on the new image 
canvas.drawBitmap(bitmap, 0f, 0f, null); // draw old image on the background 
bitmap.recycle(); // clear out old image 
bitmap = imageWithBG; 

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