安卓图像编辑器

标签 android image-editor

我想创建一个可以从 SD 卡或相机拍照的 Android 应用。拍完照片后,我要编辑它,比如在图片中添加文字,裁剪图片,将.gif类型的文件添加到图片中。拍照不是问题,但我不明白如何编写代码来编辑图片。我需要知道我是否必须为此使用 OpenGL。需要建议和有用的链接。

最佳答案

你的问题太模糊了。我提供了一些指导。

2020 年更新:您可以浏览 Android Asernal https://android-arsenal.com/tag/47 中列出的所有图像处理库

  1. 使用 Aviary SDK现在变成 Creative SDK .它还支持 iOS 和 WindowPhone7。 Aviary 提供大部分功能,例如方向、裁剪和锐度、红眼、美白和瑕疵、贴纸、绘图、文本和模因(测试版)、亮度、饱和度和对比度以及自定义选项。 SS .
  2. Fotor SDK
  3. Creative SDK由 Adob​​e
  4. 直接处理位图。
import android.graphics.Bitmap;

    public class ProcessingImage {
    private Bitmap defaultImg;
    private int idBitmap;

    public int getIdBitmap() {
        return idBitmap;
    }

    public void setIdBitmap(int idBitmap) {
        this.idBitmap = idBitmap;
    }

    public Bitmap getDefaultImg() {
        return defaultImg;
    }

    public void setDefaultImg(Bitmap defaultImg) {
        this.defaultImg = defaultImg;
    }

    public ProcessingImage() {
    }

    public Bitmap processingI(Bitmap myBitmap) {
        return myBitmap;
    }

    public Bitmap TintThePicture(int deg, Bitmap defaultBitmap) {
        int w = defaultBitmap.getWidth();
        int h = defaultBitmap.getHeight();

        int[] pix = new int[w * h];
        defaultBitmap.getPixels(pix, 0, w, 0, 0, w, h);

        double angle = (3.14159d * (double) deg) / 180.0d;
        int S = (int) (256.0d * Math.sin(angle));
        int C = (int) (256.0d * Math.cos(angle));

        int r, g, b, index;
        int RY, BY, RYY, GYY, BYY, R, G, B, Y;

        for (int y = 0; y < h; y++) {
            for (int x = 0; x < w; x++) {
                index = y * w + x;
                r = (pix[index] >> 16) & 0xff;
                g = (pix[index] >> 8) & 0xff;
                b = pix[index] & 0xff;
                RY = (70 * r - 59 * g - 11 * b) / 100;
                BY = (-30 * r - 59 * g + 89 * b) / 100;
                Y = (30 * r + 59 * g + 11 * b) / 100;
                RYY = (S * BY + C * RY) / 256;
                BYY = (C * BY - S * RY) / 256;
                GYY = (-51 * RYY - 19 * BYY) / 100;
                R = Y + RYY;
                R = (R < 0) ? 0 : ((R > 255) ? 255 : R);
                G = Y + GYY;
                G = (G < 0) ? 0 : ((G > 255) ? 255 : G);
                B = Y + BYY;
                B = (B < 0) ? 0 : ((B > 255) ? 255 : B);
                pix[index] = 0xff000000 | (R << 16) | (G << 8) | B;
            }
        }

        Bitmap bm = Bitmap.createBitmap(w, h, defaultBitmap.getConfig());
        bm.setPixels(pix, 0, w, 0, 0, w, h);

        pix = null;
        return bm;
     }
     }

用法:处理靛蓝颜色:TintThePicture(180, myBitmap); 处理绿色:TintThePicture(300, myBitmap);

  1. 使用android.media.effect在 API14 中提供

  2. Effect Pro

  3. Android-Image-Edit

  4. android-image-editor

  5. smartcrop-android (该库将通过计算一些特征来分析最佳裁剪位置和大小:边缘、肤色、高度和面部。)

关于安卓图像编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13373878/

相关文章:

android - 使用 downloadManager 下载到外部存储在 Galaxy S7 上无法正常工作

java - android.view.InflateException : Binary XML file line #16: Error inflating class <unknown> (ListView Maybe? )

java - Canvas 上文本的持续时间

python - 在 Python 中创建图像编辑应用程序

encryption - 如何查看加密图片

Android 读取 USB 游戏 handle

android - Eclipse 不更新 android sdk 列表

.net - 开源.NET矢量图形编辑器

java - 从其他 Bufferedimage 加载 Bufferedimage

php - WordPress class-wp-image-editor.php 权限被拒绝