123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- package com.epson.iprint.apf;
- import android.app.Activity;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.os.Handler;
- import java.io.File;
- import epson.print.EPImage;
- import epson.print.EPImageCreator;
- import epson.print.EPImageList;
- import epson.print.IprintApplication;
- import epson.print.phlayout.PhotoPreview;
- import epson.print.phlayout.PhotoPreviewImageList;
- public class ApfPreviewView implements PhotoPreview.PreviewBitmapMaker {
- public static final String APF_RESIZE_FILE_PREFIX = "rsapf_";
- protected ApfAdapter mApfAdapter;
- private int mApfMode;
- protected Context mApplicationContext;
- private int mClearlyVividMode;
- protected PhotoPreview mEPPreviewImageView;
- private ImageSizeConversionCache mResizeCache = new ImageSizeConversionCache();
- private int mSharpnessValue;
- public void setZoomControlHandler(Handler handler) {
- mEPPreviewImageView.setZoomControlHandler(handler);
- }
- public void init(Context context, PhotoPreview photoPreview) {
- mApplicationContext = context.getApplicationContext();
- mApfAdapter = new ApfAdapter(mApplicationContext);
- mEPPreviewImageView = photoPreview;
- mEPPreviewImageView.setPreviewBitmapMaker(this);
- }
- public static void deleteWorkingDirectory(Context context) {
- ApfAdapter.clearDirectory(context);
- }
- public void invalidate() {
- mEPPreviewImageView.invalidate();
- }
- public void setIsPaperLandscape(boolean z, Activity activity) {
- mEPPreviewImageView.setIsPaperLandscape(z, activity);
- }
- public boolean getIsPaperLandscape() {
- return mEPPreviewImageView.getIsPaperLandscape();
- }
- public void setDrawEndHandler(Handler handler) {
- mEPPreviewImageView.setDrawEndHandler(handler);
- }
- public void postInvalidate() {
- mEPPreviewImageView.postInvalidate();
- }
- public void setPreviewImageView(PhotoPreview photoPreview) {
- mEPPreviewImageView = photoPreview;
- }
- public void setApfLibParams(int i, int i2, int i3) {
- mApfMode = i;
- mSharpnessValue = i2;
- mClearlyVividMode = i3;
- }
- public int getApfMode() {
- return mApfMode;
- }
- public int getSharpnessValue() {
- return mSharpnessValue;
- }
- public int getClearlyVividMode() {
- return mClearlyVividMode;
- }
- public void setImageList(@NonNull PhotoPreviewImageList photoPreviewImageList) {
- mEPPreviewImageView.setImageList(photoPreviewImageList);
- }
- public EPImageList getImageList() {
- return mEPPreviewImageView.getImageList();
- }
- public void setLayout(int i, int i2) {
- mEPPreviewImageView.setLayout(i, i2);
- }
- public boolean setPaper(int i) {
- return mEPPreviewImageView.setPaper(i);
- }
- public void setColor(int i) {
- mEPPreviewImageView.setColor(i);
- }
- public void invalidateImageNo() {
- mEPPreviewImageView.invalidateImageNo();
- }
- public void invalidatePreview() {
- mResizeCache.invalidateCache();
- mEPPreviewImageView.invalidatePreview();
- }
- public boolean setImage(int i, int i2, Activity activity) throws OutOfMemoryError {
- return mEPPreviewImageView.setImage(i, i2, activity);
- }
- public Bitmap getPreviewBitmap(EPImage ePImage, int i, int i2, int i3, boolean z) {
- String filename;
- if (mApfMode == 0 && mSharpnessValue == 0) {
- return null;
- }
- String apfResult = mApfAdapter.getApfResult(ePImage.loadImageFileName, mApfMode, mSharpnessValue, mClearlyVividMode);
- if (apfResult == null) {
- throw new OutOfMemoryError("in getPreviewBitmap()");
- } else if (z || (filename = mResizeCache.getFilename(apfResult, new ImageSizeConversionCache.ConvertCondition(ePImage.previewWidth, ePImage.previewHeight, i3))) == null) {
- Bitmap bitmapConventionally = getBitmapConventionally(ePImage, apfResult, i, i2, i3);
- if (bitmapConventionally != null) {
- return bitmapConventionally;
- }
- throw new OutOfMemoryError("in getPreviewBitmap()");
- } else {
- Bitmap decodeFile = BitmapFactory.decodeFile(filename);
- if (decodeFile != null) {
- return decodeFile;
- }
- throw new OutOfMemoryError("in getPreviewBitmap()");
- }
- }
- protected Bitmap getBitmapConventionally(EPImage ePImage, String str, int i, int i2, int i3) {
- EPImage ePImage2 = new EPImage(str, 0);
- new EPImageCreator(IprintApplication.getInstance()).createPreviewImage(ePImage2, i, i2, i3, true);
- if (ePImage2.previewImageFileName == null) {
- return null;
- }
- File file = new File(ePImage2.previewImageFileName);
- if (!file.canRead()) {
- return null;
- }
- ePImage.srcWidth = ePImage2.srcWidth;
- ePImage.srcHeight = ePImage2.srcHeight;
- ePImage.decodeWidth = ePImage2.decodeWidth;
- ePImage.decodeHeight = ePImage2.decodeHeight;
- ePImage.previewWidth = ePImage2.previewWidth;
- ePImage.previewHeight = ePImage2.previewHeight;
- ePImage.previewImageFileName = null;
- Bitmap decodeFile = BitmapFactory.decodeFile(ePImage2.previewImageFileName);
- File apfResizeCacheFile = getApfResizeCacheFile(file, str);
- if (file.renameTo(apfResizeCacheFile)) {
- mResizeCache.setFilename(str, new ImageSizeConversionCache.ConvertCondition(ePImage.previewWidth, ePImage.previewHeight, i3), apfResizeCacheFile.toString());
- }
- return decodeFile;
- }
- private File getApfResizeCacheFile(File file, String str) {
- File parentFile = file.getParentFile();
- String name = new File(str).getName();
- return new File(parentFile, APF_RESIZE_FILE_PREFIX + name);
- }
- }
|