android cordova-plugin-camera 在 PNG 上添加黑色背景
Posted
技术标签:
【中文标题】android cordova-plugin-camera 在 PNG 上添加黑色背景【英文标题】:android cordova-plugin-camera adds black background on PNG 【发布时间】:2015-07-12 10:53:24 【问题描述】:测试于:android 4.2 和 Android 5.1.1
插件:https://github.com/apache/cordova-plugin-camera
当我们从库中导入带有 alpha(透明)层的 PNG 时,它会自动添加黑色背景。
你知道如何在插件返回的 base64 字符串中将黑色背景替换为白色背景吗?
使用的代码:
var options =
quality: 95,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
allowEdit: true,
encodingType: Camera.EncodingType.PNG,
saveToPhotoAlbum: false
;
【问题讨论】:
【参考方案1】:我找到了一种方法来阅读Android Bitmap: Convert transparent pixels to a color
然后应用到我们的代码你必须更新CameraLauncher.java:
添加要编辑的库:
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;
我提出了一个拉取请求,也许它会被整合到下一次更新中。
【讨论】:
以上是关于android cordova-plugin-camera 在 PNG 上添加黑色背景的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )