|
@@ -4,13 +4,17 @@ import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.os.Parcelable;
|
|
|
|
|
|
import android.support.annotation.VisibleForTesting;
|
|
import android.support.annotation.VisibleForTesting;
|
|
|
|
+
|
|
import com.epson.cameracopy.alt.SimpleBmpMerger;
|
|
import com.epson.cameracopy.alt.SimpleBmpMerger;
|
|
|
|
+
|
|
import epson.print.Util.ImageFileUtil;
|
|
import epson.print.Util.ImageFileUtil;
|
|
import epson.print.Util.OpenCvHelper;
|
|
import epson.print.Util.OpenCvHelper;
|
|
|
|
+
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
import java.util.LinkedList;
|
|
import java.util.LinkedList;
|
|
|
|
+
|
|
import org.opencv.core.Core;
|
|
import org.opencv.core.Core;
|
|
import org.opencv.core.CvType;
|
|
import org.opencv.core.CvType;
|
|
import org.opencv.core.Mat;
|
|
import org.opencv.core.Mat;
|
|
@@ -128,8 +132,8 @@ public class ImageAndLayout implements Parcelable {
|
|
if (iArr == null || iArr.length < 2 || (i = mPrintableAreaWidth) <= 0 || (i2 = mPrintableAreaHeight) <= 0) {
|
|
if (iArr == null || iArr.length < 2 || (i = mPrintableAreaWidth) <= 0 || (i2 = mPrintableAreaHeight) <= 0) {
|
|
return dArr;
|
|
return dArr;
|
|
}
|
|
}
|
|
- dArr[0] = ( iArr[0]) / ( i);
|
|
|
|
- dArr[1] = ( iArr[1]) / ( i2);
|
|
|
|
|
|
+ dArr[0] = (iArr[0]) / (i);
|
|
|
|
+ dArr[1] = (iArr[1]) / (i2);
|
|
return dArr;
|
|
return dArr;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -236,17 +240,17 @@ public class ImageAndLayout implements Parcelable {
|
|
d4 = size3.height / size4.width;
|
|
d4 = size3.height / size4.width;
|
|
d3 = d6;
|
|
d3 = d6;
|
|
}
|
|
}
|
|
- int i2 = (d3 / 2.0d);
|
|
|
|
- int i3 = (d4 / 2.0d);
|
|
|
|
|
|
+ int i2 = (d3 / 2.0d);
|
|
|
|
+ int i3 = (d4 / 2.0d);
|
|
switch (i & 3) {
|
|
switch (i & 3) {
|
|
case 1:
|
|
case 1:
|
|
- return new3x2Mat(0.0d, -d3, ((d + size3.width) - ( i2)) - 1.0d, d4, 0.0d, d2 + ( i3));
|
|
|
|
|
|
+ return new3x2Mat(0.0d, -d3, ((d + size3.width) - (i2)) - 1.0d, d4, 0.0d, d2 + (i3));
|
|
case 2:
|
|
case 2:
|
|
- return new3x2Mat(-d3, 0.0d, ((d + size3.width) - ( i2)) - 1.0d, 0.0d, -d4, ((d2 + size3.height) - ( i3)) - 1.0d);
|
|
|
|
|
|
+ return new3x2Mat(-d3, 0.0d, ((d + size3.width) - (i2)) - 1.0d, 0.0d, -d4, ((d2 + size3.height) - (i3)) - 1.0d);
|
|
case 3:
|
|
case 3:
|
|
- return new3x2Mat(0.0d, d3, d + ( i2), -d4, 0.0d, ((d2 + size3.height) - ( i3)) - 1.0d);
|
|
|
|
|
|
+ return new3x2Mat(0.0d, d3, d + (i2), -d4, 0.0d, ((d2 + size3.height) - (i3)) - 1.0d);
|
|
default:
|
|
default:
|
|
- return new3x2Mat(d3, 0.0d, d + ( i2), 0.0d, d4, d2 + ( i3));
|
|
|
|
|
|
+ return new3x2Mat(d3, 0.0d, d + (i2), 0.0d, d4, d2 + (i3));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -260,7 +264,7 @@ public class ImageAndLayout implements Parcelable {
|
|
Mat mat2 = new Mat(2, 3, 6);
|
|
Mat mat2 = new Mat(2, 3, 6);
|
|
mat2.put(0, 0, mat.get(1, 0)[0] * -1.0d);
|
|
mat2.put(0, 0, mat.get(1, 0)[0] * -1.0d);
|
|
mat2.put(0, 1, mat.get(1, 1)[0] * -1.0d);
|
|
mat2.put(0, 1, mat.get(1, 1)[0] * -1.0d);
|
|
- mat2.put(0, 2, (mat.get(1, 2)[0] * -1.0d) + ( iArr[0]));
|
|
|
|
|
|
+ mat2.put(0, 2, (mat.get(1, 2)[0] * -1.0d) + (iArr[0]));
|
|
mat2.put(1, 0, mat.get(0, 0)[0]);
|
|
mat2.put(1, 0, mat.get(0, 0)[0]);
|
|
mat2.put(1, 1, mat.get(0, 1)[0]);
|
|
mat2.put(1, 1, mat.get(0, 1)[0]);
|
|
mat2.put(1, 2, mat.get(0, 2)[0]);
|
|
mat2.put(1, 2, mat.get(0, 2)[0]);
|
|
@@ -269,16 +273,16 @@ public class ImageAndLayout implements Parcelable {
|
|
Mat mat3 = null;
|
|
Mat mat3 = null;
|
|
mat3.put(0, 0, mat.get(0, 0)[0] * -1.0d);
|
|
mat3.put(0, 0, mat.get(0, 0)[0] * -1.0d);
|
|
mat3.put(0, 1, mat.get(0, 1)[0] * -1.0d);
|
|
mat3.put(0, 1, mat.get(0, 1)[0] * -1.0d);
|
|
- mat3.put(0, 2, (mat.get(0, 2)[0] * -1.0d) + ( iArr[0]));
|
|
|
|
|
|
+ mat3.put(0, 2, (mat.get(0, 2)[0] * -1.0d) + (iArr[0]));
|
|
mat3.put(1, 0, mat.get(1, 0)[0] * -1.0d);
|
|
mat3.put(1, 0, mat.get(1, 0)[0] * -1.0d);
|
|
mat3.put(1, 1, mat.get(1, 1)[0] * -1.0d);
|
|
mat3.put(1, 1, mat.get(1, 1)[0] * -1.0d);
|
|
- mat3.put(1, 2, (mat.get(1, 2)[0] * -1.0d) + ( iArr[1]));
|
|
|
|
|
|
+ mat3.put(1, 2, (mat.get(1, 2)[0] * -1.0d) + (iArr[1]));
|
|
return mat3;
|
|
return mat3;
|
|
case 3:
|
|
case 3:
|
|
Mat mat4 = new Mat(2, 3, 6);
|
|
Mat mat4 = new Mat(2, 3, 6);
|
|
mat4.put(0, 0, mat.get(1, 0)[0]);
|
|
mat4.put(0, 0, mat.get(1, 0)[0]);
|
|
mat4.put(0, 1, mat.get(1, 1)[0]);
|
|
mat4.put(0, 1, mat.get(1, 1)[0]);
|
|
- mat4.put(0, 2, mat.get(1, 2)[0] + ( iArr[0]));
|
|
|
|
|
|
+ mat4.put(0, 2, mat.get(1, 2)[0] + (iArr[0]));
|
|
mat4.put(1, 0, mat.get(0, 0)[0] * -1.0d);
|
|
mat4.put(1, 0, mat.get(0, 0)[0] * -1.0d);
|
|
mat4.put(1, 1, mat.get(0, 1)[0] * -1.0d);
|
|
mat4.put(1, 1, mat.get(0, 1)[0] * -1.0d);
|
|
mat4.put(1, 2, mat.get(0, 2)[0] * -1.0d);
|
|
mat4.put(1, 2, mat.get(0, 2)[0] * -1.0d);
|
|
@@ -319,8 +323,8 @@ public class ImageAndLayout implements Parcelable {
|
|
private boolean affineBand(Mat mat, Mat mat2, int i, int i2, int i3, File file) {
|
|
private boolean affineBand(Mat mat, Mat mat2, int i, int i2, int i3, File file) {
|
|
Mat clone = mat2.clone();
|
|
Mat clone = mat2.clone();
|
|
Mat mat3 = new Mat();
|
|
Mat mat3 = new Mat();
|
|
- Size size = new Size( i, i2);
|
|
|
|
- clone.put(1, 2, clone.get(1, 2)[0] - ( i3));
|
|
|
|
|
|
+ Size size = new Size(i, i2);
|
|
|
|
+ clone.put(1, 2, clone.get(1, 2)[0] - (i3));
|
|
Mat mat4 = null;
|
|
Mat mat4 = null;
|
|
try {
|
|
try {
|
|
Imgproc.warpAffine(mat, mat3, clone, size, mInterpolation, 0, new Scalar(255.0d, 255.0d, 255.0d, 255.0d));
|
|
Imgproc.warpAffine(mat, mat3, clone, size, mInterpolation, 0, new Scalar(255.0d, 255.0d, 255.0d, 255.0d));
|