Android 图片编辑error
来源:互联网 发布:mysql 5.1.55.tar.gz 编辑:程序博客网 时间:2024/05/12 17:46
一、问题
1、调整锐度无效果,出现如下错误:
解决方案:
1、应该引用android.support.v8.renderscript 的包而不是android android.renderscript,下载android.support.v8.renderscript jar包放入libs文件夹引用,可以从Sdk\build-tools\xxxx\renderscript\lib 目录下拷贝renderscript-v8.jar,也可以直接用较高版本的build tools(较高的build tools已包含v8 jar)
2、在app build.gradle中添加,
defaultConfig { ...... renderscriptTargetApi 19 renderscriptSupportModeEnabled true ....... }
3、重新rebuild 工程即可
2、进入图片编辑,对图片进行手绘后进行镜像变换,镜像界面异常
修改如下:
diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/filters/ImageFilterDraw.java b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/filters/ImageFilterDraw.javaindex 6b43d5b..2a84067 100755--- a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/filters/ImageFilterDraw.java+++ b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/filters/ImageFilterDraw.java@@ -33,6 +33,7 @@ import android.graphics.PathMeasure; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect;+import android.util.Log; import cn.com.protruly.vrbrowser.view.filtershow.filters.FilterDrawRepresentation.StrokeData; import cn.com.protruly.vrbrowser.view.filtershow.filters.FilterMirrorRepresentation.Mirror;@@ -269,15 +270,22 @@ public class ImageFilterDraw extends ImageFilter { mCachedStrokes = 0; }- if (mCachedStrokes < mParameters.getDrawing().size()) {+ Vector<StrokeData> mDrawing = mParameters.getDrawing();//kang add,22/11/2017+ //[BEGIN-DEL] draw and Mirror display the abnormality,by kang,22/11/2017+/* if (mCachedStrokes < mParameters.getDrawing().size()) { fillBuffer(originalRotateToScreen);- }+ }*/+ //[END] canvas.drawBitmap(mOverlayBitmap, 0, 0, paint);- StrokeData stroke = mParameters.getCurrentDrawing();- if (stroke != null) {- paint(stroke, canvas, originalRotateToScreen, quality);+ //[BEGIN-ADD] draw and Mirror display the abnormality,by kang,22/11/2017+// StrokeData stroke = mParameters.getCurrentDrawing();//kang del+ for(StrokeData stroke:mDrawing) {+ if (stroke != null) {+ paint(stroke, canvas, originalRotateToScreen, quality);+ } }+ //[END] }
3、进入编辑图片操作几次就会出现
java.lang.OutOfMemoryError: Failed to allocate a 72000012 byte allocation with 4191936 free bytes and 42MB until OOM修改如下:$ git stOn branch VREditor4SYour branch is up-to-date with 'origin/VREditor4S'.Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java modified: app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java modified: app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java modified: app/src/main/res/layout/filtershow_activity.xml modified: app/src/main/res/values/colors.xmlno changes added to commit (use "git add" and/or "git commit -a")rd0551@MI-DingKang MINGW64 /e/2_AppProject/VREditor3S (VREditor4S)$ git diffdiff --git a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java b/app/src/main/java/cn/com/protruly/vrbrowser/ui /activity/FilterShowActivity.javaindex 65da309..998991b 100755--- a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java+++ b/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java@@ -894,7 +894,7 @@ public class FilterShowActivity extends ActivityToolbarBase implements OnItemCli Rect bounds = new Rect(); Bitmap originalHires = ImageLoader.loadOrientedConstrainedBitmap(master.getUri(), master.getActivity(), highresPreviewSize,- master.getOrientation(), bounds);+ master.getOrientation(), bounds, true); master.setOriginalBounds(bounds); master.setOriginalBitmapHighres(originalHires); mBoundService.setOriginalBitmapHighres(originalHires);diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java b/app/src/main/java/cn/com/protruly/vrbrowser /view/filtershow/cache/ImageLoader.javaindex 22b1429..025d654 100755--- a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java+++ b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java@@ -520,8 +520,8 @@ public final class ImageLoader { * @return downsampled bitmap or null if this operation failed. */ public static Bitmap loadOrientedConstrainedBitmap(Uri uri, Context context, int maxSideLength,- int orientation, Rect originalBounds) {- Bitmap bmap = loadConstrainedBitmap(uri, context, maxSideLength, originalBounds, true);+ int orientation, Rect originalBounds, boolean isLarge) {+ Bitmap bmap = loadConstrainedBitmap(uri, context, maxSideLength, originalBounds, isLarge);//kang if (bmap != null) { bmap = orientBitmap(bmap, orientation); if (bmap.getConfig() != Bitmap.Config.ARGB_8888) {diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java b/app/src/main/java/cn/com/protruly/vrbro wser/view/filtershow/imageshow/MasterImage.javaindex 704a9a7..eea6fb1 100755--- a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java+++ b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java@@ -214,7 +214,7 @@ public class MasterImage implements RenderingRequestCaller { Rect originalBounds = new Rect(); mOriginalBitmapLarge = ImageLoader.loadOrientedConstrainedBitmap(uri, getActivity(), Math.min(MAX_BITMAP_DIM, size),- mOrientation, originalBounds);+ mOrientation, originalBounds, false);//kang setOriginalBounds(originalBounds); if (mOriginalBitmapLarge == null) { return false;diff --git a/app/src/main/res/layout/filtershow_activity.xml b/app/src/main/res/layout/filtershow_activity.xmlindex 4eb38f1..4ee1af9 100755--- a/app/src/main/res/layout/filtershow_activity.xml+++ b/app/src/main/res/layout/filtershow_activity.xml@@ -19,7 +19,7 @@:...skipping...diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java b/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.javaindex 65da309..998991b 100755--- a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java+++ b/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java@@ -894,7 +894,7 @@ public class FilterShowActivity extends ActivityToolbarBase implements OnItemClidiff --git a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java b/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.javaindex 65da309..998991b 100755--- a/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java+++ b/app/src/main/java/cn/com/protruly/vrbrowser/ui/activity/FilterShowActivity.java@@ -894,7 +894,7 @@ public class FilterShowActivity extends ActivityToolbarBase implements OnItemCli Rect bounds = new Rect(); Bitmap originalHires = ImageLoader.loadOrientedConstrainedBitmap(master.getUri(), master.getActivity(), highresPreviewSize,- master.getOrientation(), bounds);+ master.getOrientation(), bounds, true); master.setOriginalBounds(bounds); master.setOriginalBitmapHighres(originalHires); mBoundService.setOriginalBitmapHighres(originalHires);diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.javaindex 22b1429..025d654 100755--- a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java+++ b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/cache/ImageLoader.java@@ -520,8 +520,8 @@ public final class ImageLoader { * @return downsampled bitmap or null if this operation failed. */ public static Bitmap loadOrientedConstrainedBitmap(Uri uri, Context context, int maxSideLength,- int orientation, Rect originalBounds) {- Bitmap bmap = loadConstrainedBitmap(uri, context, maxSideLength, originalBounds, true);+ int orientation, Rect originalBounds, boolean isLarge) {+ Bitmap bmap = loadConstrainedBitmap(uri, context, maxSideLength, originalBounds, isLarge);//kang if (bmap != null) { bmap = orientBitmap(bmap, orientation); if (bmap.getConfig() != Bitmap.Config.ARGB_8888) {diff --git a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.javaindex 704a9a7..eea6fb1 100755--- a/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java+++ b/app/src/main/java/cn/com/protruly/vrbrowser/view/filtershow/imageshow/MasterImage.java@@ -214,7 +214,7 @@ public class MasterImage implements RenderingRequestCaller { Rect originalBounds = new Rect(); mOriginalBitmapLarge = ImageLoader.loadOrientedConstrainedBitmap(uri, getActivity(), Math.min(MAX_BITMAP_DIM, size),- mOrientation, originalBounds);+ mOrientation, originalBounds, false);//kang setOriginalBounds(originalBounds); if (mOriginalBitmapLarge == null) { return false;
二、备注
resetGeometryImagesColorChooser.java----颜色选择----setup()ImageDraw.javaonTouchEvent->mFRep.startNewSection( mTmpPoint[0], mTmpPoint[1]);//画线FilterDrawRepresentation.java构造函数设置默认值为红色useParametersFrom负责划线FilterShowActivity.javaMasterImage.getImage().setPreset(oldPreset, filterRepresentation, true);// copy就是mirror翻转之后的presetCachingPipeline.javarenderHighres->getOriginalBitmapHighres->getBitmapCopy>applyGeometry->apply //旋转画图的地方GeometryMathUtils.java //裁剪相关操作类11-17 10:29:15.094 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: java.lang.Exception:11-17 10:29:15.094 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.concatMirrorMatrix(GeometryMathUtils.java:223)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.getFullGeometryMatrix(GeometryMathUtils.java:457)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.getTrueCropRect(GeometryMathUtils.java:483)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.getCropSelectionToScreenMatrix(GeometryMathUtils.java:492)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.getOriginalToScreen(GeometryMathUtils.java:401)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.imageshow.GeometryMathUtils.getImageToScreenMatrix(GeometryMathUtils.java:355)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.filters.ImageFilter.getOriginalToScreenMatrix(ImageFilter.java:82)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.filters.ImageFilterDraw.apply(ImageFilterDraw.java:334)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.FilterEnvironment.applyRepresentation(FilterEnvironment.java:135)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.ImagePreset.applyFilters(ImagePreset.java:539)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.ImagePreset.apply(ImagePreset.java:455)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.CachingPipeline.renderHighres(CachingPipeline.java:239)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.HighresRenderingRequestTask.doInBackground(HighresRenderingRequestTask.java:75)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.ProcessingTask.processRequest(ProcessingTask.java:70)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at cn.com.protruly.vrbrowser.view.filtershow.pipeline.ProcessingTaskController.handleMessage(ProcessingTaskController.java:60)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at android.os.Handler.dispatchMessage(Handler.java:107)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at android.os.Looper.loop(Looper.java:207)11-17 10:29:15.095 13366-13427/com.protruly.gallery3d.app:filtershow W/System.err: at android.os.HandlerThread.run(HandlerThread.java:61)ImageFilterDraw.java//mParameters.getDrawing()存储的是画线的点数据//paint函数画线apply->drawData->paint IconView.java //图片编辑效果显示小框图相关文件
阅读全文
0 0
- Android 图片编辑error
- Android图片编辑
- android编辑访问网络图片
- Android 编辑图片EXIF信息
- 【Android】 图片编辑:创建圆角图片
- Android 选择图片 拍照 并编辑图片
- android.9.png格式图片编辑
- Android stuido中更改图片编辑软件
- Android 编辑个人资料,图片可拖拽排序
- 图片编辑
- 图片编辑
- Android入门--实现选择并编辑图片设置成头像
- Android开发:对图片进行简单的编辑
- Android图片编辑,画箭头,画圆,画矩形(等)
- android高仿微信视频编辑页-视频多张图片提取
- Android 文字框,编辑框里的图片点击事件
- Android studio下进行9patch图片的编辑
- Android Editext 编辑图文(图片文字共存)
- Windows安装Mysql5.7(超简单)
- CC2640中GAPRole的大致状态变化图
- H5移动页面的touch事件与点击穿透问题
- 创建Vue项目 以及引入Iview
- 什么是PyTorch,为何要使用PyTorch
- Android 图片编辑error
- 记录下kaggle比赛经验
- jquery 插件实现多行文本框[textarea]自动高度
- Ball
- 【UE4 shader】结冰材质
- Git使用总结(包含Git Bash和Git GUI的使用)
- linux下的多线程编程
- 自定义View滑动开关
- Windows下获得窗口实例句柄的3种方法