Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android图像编辑器_Android_Image Editor - Fatal编程技术网

Android图像编辑器

Android图像编辑器,android,image-editor,Android,Image Editor,我想创建一个Android应用程序,在那里我可以从SD卡或相机拍照。拍摄完照片后,我必须对其进行编辑,比如在图片中添加文本、裁剪图片、在图片中添加.gif类型的文件。拍照不是问题,但我不明白如何编写代码来编辑图片。我需要知道我是否必须使用OpenGL来实现这一点。需要建议和有用的链接。您的问题太模糊了。我提供一些指导。 更新2020:您可以浏览Android Asernal中列出的所有图像处理库 使用现在变成。它还支持iOS和WindowPhone7。鸟舍提供大多数功能,如方向、裁剪、锐度、红眼

我想创建一个Android应用程序,在那里我可以从SD卡或相机拍照。拍摄完照片后,我必须对其进行编辑,比如在图片中添加文本、裁剪图片、在图片中添加.gif类型的文件。拍照不是问题,但我不明白如何编写代码来编辑图片。我需要知道我是否必须使用OpenGL来实现这一点。需要建议和有用的链接。

您的问题太模糊了。我提供一些指导。 更新2020:您可以浏览Android Asernal中列出的所有图像处理库
  • 使用现在变成。它还支持iOS和WindowPhone7。鸟舍提供大多数功能,如方向、裁剪、锐度、红眼、变白和瑕疵、贴纸、绘图、文本和模因(测试版)、亮度、饱和度、对比度和自定义选项

  • 由Adobe提供

  • 直接处理位图

    导入android.graphics.Bitmap

    公共类处理映像{ 私有位图默认img; 私有int idBitmap

    public int getIdBitmap(){ 返回idBitmap; }

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

    公共位图getDefaultImg(){ 返回defaultImg; }

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

    公共处理映像(){ }

    公共位图处理i(位图myBitmap){ 返回我的位图; }

    公共位图颜色图片(整数度,位图默认位图){

    intw=defaultBitmap.getWidth();
    int h=defaultBitmap.getHeight();
    int[]pix=新int[w*h];
    获取像素(像素,0,w,0,0,w,h);
    双角度=(3.14159d*(双)度)/180.0d;
    int S=(int)(256.0d*Math.sin(角度));
    int C=(int)(256.0d*Math.cos(角度));
    int r,g,b,索引;
    in-RY,BY,RYY,GYY,BYY,R,G,B,Y;
    对于(int y=0;y>16)&0xff;
    g=(pix[index]>>8)&0xff;
    b=pix[索引]&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首先回答您的问题,不,您不必使用openGL。以下是一些开源示例:

    伊克弗托:


    LeafPic:

    我下载了android图像编辑,但它不起作用。错误是:android要求编译器符合性级别为5.0或6.0。改为找到“1.7”。请使用android工具>修复项目属性。android->proerties->java编译器。选中enable projects setti…选择1.6@mmakatih是否可以找到任何其他类型的打开文件源示例?
       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;
    }
    }