3

我正在尝试使用cordova-plugin-camera检索一张PNG图片,代码如下:

navigator.camera.getPicture(onPictSuccess, onFailPict, { quality: 50, encodingType:Camera.EncodingType.PNG, destinationType:navigator.camera.DestinationType.FILE_URI});

但它总是返回一个 JPG 文件。有人在 Android 上成功获得 PNG 吗?

在 CameraLauncher.java l.390 和许多其他位置查看 Android 的 java 插件源,“.jpg”似乎是硬编码的:

uri = Uri.fromFile(new File(getTempDirectoryPath(), System.currentTimeMillis() + ".jpg"));

我尝试用“.png”替换“.jpg”,但当然这只改变了扩展名。

4

1 回答 1

0

好吧,我离解决方案不远了。在 processResultFromCamera() (l.413) 下面几行 jpeg 参考也是硬编码的

bitmap.compress(Bitmap.CompressFormat.JPEG, this.mQuality, os);

我替换为:

if (this.encodingType == JPEG) {
    bitmap.compress(Bitmap.CompressFormat.JPEG, this.mQuality, os);
}
else if (this.encodingType == PNG) {
     bitmap.compress(Bitmap.CompressFormat.PNG, this.mQuality, os);
}

所以插件的文档是错误的 Android 不支持 PNG。而且我不知道更多关于 github 来更正代码

于 2014-09-17T11:16:45.800 回答