1,图片编辑(图片添加,文字添加),实现图片编辑中的图片添加,旋转,缩放,删除;文字的添加,大小缩放,字体更换,颜色更换,删除; 2,基本滤镜实现与接口封装; 涂鸦(画笔的样式,粗细,颜色,橡皮擦,贴图); 相框(简单相框,酷炫相框); 马赛就克(基本马赛克,酷炫马赛克,橡皮擦)及其接口封装 3,接下来, 图像剪切,旋转等功能实现测试接口封装; GIF与MP4,图片互转实现测试与接口封装;

Related tags

Demo PhotoEditDemo
Overview

图片处理sdk(just for eclipse)

Note: 新的项目(for studio)转移到https://github.com/jarlen/PhotoEdit (包括jni本地源码)

  • cn.ffmpeg
    • gif mp4 互转
  • com.js.photosdk.bodywarp
    • 图片变形
  • com.js.photosdk.crop
    • 图片剪切
  • com.js.photosdk.enhance
    • 图片增强,对比度,饱和度,亮度
  • com.js.photosdk.filter
  • com.js.photosdk.mosaic
    • 马赛克
  • com.js.photosdk.operate
    • 图片添加水印,添加文字
  • com.js.photosdk.photoframe
    • 添加相框
  • com.js.photosdk.scrawl
    • 涂鸦
  • com.js.photosdk.utils
    • 工具类
  • jp.co.cyberagent.android.gpuimage
    • 滤镜 library
  • jp.co.cyberagent.android.gpuimage.util
    • 滤镜 library
You might also like...
Comments
  • java.lang.UnsatisfiedLinkError

    java.lang.UnsatisfiedLinkError

    在小米2 Android 5.0.2 和小米3 Android 4.4.4上跑demo,滤镜功能无法使用。一点测试就闪退,提示NativeFilters找不到filters库。 附log: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.jarlen.picturetest-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libfilters.so" at java.lang.Runtime.loadLibrary(Runtime.java:366) at java.lang.System.loadLibrary(System.java:989) at com.js.photosdk.filter.NativeFilters.(NativeFilters.java:6) at com.jarlen.picturetest.ImageFilterActivity.(ImageFilterActivity.java:40) at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.Class.newInstance(Class.java:1572) at android.app.Instrumentation.newActivity(Instrumentation.java:1065) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2204) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363) at android.app.ActivityThread.access$800(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5235) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:906) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:701)

    opened by newtonker 3
  • 调用涂鸦功能会有几率崩溃

    调用涂鸦功能会有几率崩溃

    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.isRecycled()' on a null object reference at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1269) at android.graphics.Canvas.drawBitmap(Canvas.java:1325) at com.js.photosdk.scrawl.DrawingBoardView.onDraw(DrawingBoardView.java:59) at android.view.View.draw(View.java:16435) at android.view.View.updateDisplayListIfDirty(View.java:15388) at android.view.View.draw(View.java:16189) at android.view.ViewGroup.drawChild(ViewGroup.java:3735) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3525) at android.view.View.updateDisplayListIfDirty(View.java:15380) at android.view.View.draw(View.java:16189) at android.view.ViewGroup.drawChild(ViewGroup.java:3735) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3525) at android.view.View.updateDisplayListIfDirty(View.java:15380) at android.view.View.draw(View.java:16189) at android.view.ViewGroup.drawChild(ViewGroup.java:3735) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3525) at android.view.View.updateDisplayListIfDirty(View.java:15380) at android.view.View.draw(View.java:16189) at android.view.ViewGroup.drawChild(ViewGroup.java:3735) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3525) at android.view.View.updateDisplayListIfDirty(View.java:15380) at android.view.View.draw(View.java:16189) at android.view.ViewGroup.drawChild(ViewGroup.java:3735) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3525) at android.view.View.updateDisplayListIfDirty(View.java:15380) at android.view.View.draw(View.java:16189) at android.view.ViewGroup.drawChild(ViewGroup.java:3735) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3525) at android.view.View.updateDisplayListIfDirty(View.java:15380) at android.view.View.draw(View.java:16189) at android.view.ViewGroup.drawChild(ViewGroup.java:3735) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3525) at com.android.internal.policy.PhoneWindow$DecorView.dispatchDraw(PhoneWindow.java:2768) at android.view.View.draw(View.java:16447) at com.android.internal.policy.PhoneWindow$DecorView.draw(PhoneWindow.java:2754) at android.view.View.updateDisplayListIfDirty(View.java:15388) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:286) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:292) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:327) at android.view.ViewRootImpl.draw(ViewRootImpl.java:3025) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2829) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2441) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1323) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6713) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:894) at android.view.Choreographer.doCallbacks(Choreographer.java:696) at android.view.Choreographer.doFrame(Choreographer.java:631) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:880) at android.os.Handler.handleCallback(Handler.java:815) at android.os.Handler.dispatchMessage(Handler.java:104) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5728) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)

    opened by LcTerry 1
  • 点击滤镜和人脸变形在华为荣耀6 plus 里崩溃

    点击滤镜和人脸变形在华为荣耀6 plus 里崩溃

    // 滤镜 java.lang.UnsatisfiedLinkError: Couldn't load filters from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.jarlen.picturetest-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.jarlen.picturetest-2, /vendor/lib, /system/lib, /data/datalib]]]: findLibrary returned null // 人脸变形 java.lang.UnsatisfiedLinkError: Couldn't load bodywarp from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.jarlen.picturetest-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.jarlen.picturetest-2, /vendor/lib, /system/lib, /data/datalib]]]: findLibrary returned null

    该项目还维护吗,有没有给视频添加滤镜和mv 的功能啊,有没有关于ffmpeg编译的文档吗和ffmpeg比较好的文档,最好是中文的

    opened by tianshaokai 0
  • scrawl.DrawAttribute$DrawStatus.ordinal()' on a null object reference

    scrawl.DrawAttribute$DrawStatus.ordinal()' on a null object reference

    java.lang.NullPointerException: Attempt to invoke virtual method 'int com.js.photosdk.scrawl.DrawAttribute$DrawStatus.ordinal()' on a null object reference at com.js.photosdk.scrawl.DrawingBoardView$BrushGestureListener.onDown(DrawingBoardView.java:238) How to deal with it

    opened by LcTerry 1
Owner
明天的农夫
Android/PHP Developer
明天的农夫