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"));

「.jpg」を「.png」に置き換えてみましたが、もちろん拡張子の名前が変わるだけです。

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);
}

そのため、プラグインのドキュメントが間違っています。PNG は Android ではサポートされていません。そして、コードを修正するためのgithubについて詳しく知りません

于 2014-09-17T11:16:45.800 に答える