9
0
mirror of https://gitee.com/shuto/customCamera.git synced 2024-10-06 10:22:07 +08:00

Ajout d'une option pour changer l'image en surimpression en fonction de l'orientation de l'écran.

This commit is contained in:
Christophe Boucaut 2015-01-29 18:58:52 +01:00
parent 9e0b9348f5
commit c785aed2b1
5 changed files with 58 additions and 9 deletions

View File

@ -1,7 +1,11 @@
function getGrid() {
function getGrid(inverse) {
var format = "image/png";
var width = window.innerWidth * devicePixelRatio;
var height = window.innerHeight * devicePixelRatio;
if (inverse) {
width = window.innerHeight * devicePixelRatio;
height = window.innerWidth * devicePixelRatio;
}
var widthInterval = width * 0.25;
var heightInterval = height * 0.25;
var x = widthInterval;
@ -39,6 +43,7 @@ document.getElementById("start-camera").onclick = function() {
navigator.GeneanetCustomCamera.startCamera(
{
imgBackgroundBase64: getGrid(),
imgBackgroundBase64OtherOrientation: getGrid(true),
opacity: false,
miniature: false
},

View File

@ -60,14 +60,29 @@ public class CameraLauncher extends CordovaPlugin {
TransferBigData.setImgBackgroundBase64(imgBackgroundBase64);
}
intent.putExtra("miniature", args.getBoolean(1));
intent.putExtra("saveInGallery", args.getBoolean(2));
intent.putExtra("cameraBackgroundColor", args.getString(3));
intent.putExtra("cameraBackgroundColorPressed", args.getString(4));
if (args.getInt(5) >= 0 && args.getInt(5) <= 100) {
intent.putExtra("quality", args.getInt(5));
if (args.getString(1) != "null") {
byte[] imgBackgroundBase64OtherOrientation;
try {
imgBackgroundBase64OtherOrientation = Base64
.decode(args.getString(1), Base64.NO_WRAP);
} catch (IllegalArgumentException e) {
this.callbackContext.error(generateError(CameraLauncher.RESULT_ERROR,
"Error decode base64 picture."));
return false;
}
TransferBigData.setImgBackgroundBase64OtherOrientation(imgBackgroundBase64OtherOrientation);
}
intent.putExtra("opacity", args.getBoolean(6));
intent.putExtra("miniature", args.getBoolean(2));
intent.putExtra("saveInGallery", args.getBoolean(3));
intent.putExtra("cameraBackgroundColor", args.getString(4));
intent.putExtra("cameraBackgroundColorPressed", args.getString(5));
if (args.getInt(6) >= 0 && args.getInt(6) <= 100) {
intent.putExtra("quality", args.getInt(6));
}
intent.putExtra("opacity", args.getBoolean(7));
intent.putExtra("startOrientation", this.cordova.getActivity().getResources().getConfiguration().orientation);
cordova.startActivityForResult((CordovaPlugin) this, intent,
CameraLauncher.REQUEST_CODE);

View File

@ -396,7 +396,15 @@ public class CameraActivity extends Activity {
/** To set background in the view. */
protected void setBackground() {
// Get the base64 picture for the background only if it's exist.
byte[] imgBackgroundBase64 = TransferBigData.getImgBackgroundBase64();
byte[] imgBackgroundBase64;
if (
TransferBigData.getImgBackgroundBase64OtherOrientation() == null ||
this.getIntent().getIntExtra("startOrientation", 1) == this.getResources().getConfiguration().orientation
) {
imgBackgroundBase64 = TransferBigData.getImgBackgroundBase64();
} else {
imgBackgroundBase64 = TransferBigData.getImgBackgroundBase64OtherOrientation();
}
if (imgBackgroundBase64 != null) {
// Get picture.
Bitmap imgBackgroundBitmap = BitmapFactory.decodeByteArray(

View File

@ -5,6 +5,7 @@ package org.geneanet.customcamera;
*/
public class TransferBigData {
protected static byte[] imgBackgroundBase64 = null;
protected static byte[] imgBackgroundBase64OtherOrientation = null;
protected static byte[] imgTaken = null;
/**
@ -25,6 +26,24 @@ public class TransferBigData {
TransferBigData.imgBackgroundBase64 = imgBackgroundBase64;
}
/**
* Get bytes to represent background picture for OtherOrientation.
*
* @return byte[]
*/
public static byte[] getImgBackgroundBase64OtherOrientation() {
return TransferBigData.imgBackgroundBase64OtherOrientation;
}
/**
* Set bytes to represent background picture for OtherOrientation.
*
* @param byte[] imgBackgroundBase64OtherOrientation
*/
public static void setImgBackgroundBase64OtherOrientation(byte[] imgBackgroundBase64OtherOrientation) {
TransferBigData.imgBackgroundBase64OtherOrientation = imgBackgroundBase64OtherOrientation;
}
/**
* Get bytes to represent picture taken.
*

View File

@ -17,6 +17,7 @@
CustomCameraExport.prototype.startCamera = function(options, successFct, failFct) {
var defaultOptions = {
imgBackgroundBase64: null, // background picture in base64.
imgBackgroundBase64OtherOrientation: null, // background picture in base64 for second orientation. If it's not defined, imgBackgroundBase64 is used.
miniature: true, // active or disable the miniature function.
saveInGallery: false, // save or not the picture in gallery.
cameraBackgroundColor: "#e26760", // color of the camera button.
@ -47,6 +48,7 @@
"startCamera",
[
options.imgBackgroundBase64,
options.imgBackgroundBase64OtherOrientation,
options.miniature,
options.saveInGallery,
options.cameraBackgroundColor,