首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android图像处理库

Android图像处理库
EN

Stack Overflow用户
提问于 2012-02-17 15:55:34
回答 4查看 19.4K关注 0票数 8

我在一个小的android应用程序上工作,我想做一个图像上的效果,即素描,单色,深褐色,木炭,油画颜料,否定,翻转,浮雕等影响图像,也改变色调,饱和度,亮度,对比度,锐度图像。有没有为这样的工具准备的Android库。我真的很感谢你的帮助。

EN

回答 4

Stack Overflow用户

发布于 2012-02-17 16:08:19

请试用此库

票数 4
EN

Stack Overflow用户

发布于 2012-07-27 19:18:22

使用下面的代码为位图添加对比度:值的范围从1到100

代码语言:javascript
复制
public static Bitmap AdjustContrast(Bitmap original, float Value){
        Value                                       =   (100.0f + Value) / 100.0f;
        Value *= Value;
        Bitmap newBitmap                            =   Bitmap.createBitmap(original.getWidth(), original.getHeight(),original.getConfig());
        int[] argb                                  =   new int[original.getWidth() * original.getHeight()];
        original.getPixels(argb, 0, original.getWidth(), 0, 0, original.getWidth(), original.getHeight());
        for (int i = argb.length - 1; i >= 0; --i) {
        int alpha                                   =   argb[i] >> 24;
        int red                                     =   (argb[i] >> 16) & 0xFF;
        int green                                   =   (argb[i] >> 8) & 0xFF;
        int blue                                    =   argb[i] & 0xFF;         
        float Red                                   =   red / 255.0f;
        float Green                                 =   green / 255.0f;
        float Blue                                  =   blue / 255.0f;
        Red                                         =   (((Red - 0.5f) * Value) + 0.5f) * 255.0f;
        Green                                       =   (((Green - 0.5f) * Value) + 0.5f) * 255.0f;
        Blue                                        =   (((Blue - 0.5f) * Value) + 0.5f) * 255.0f;
        int iR                                      =   (int)Red;
        iR                                          =   iR > 255 ? 255 : iR;
        iR                                          =   iR < 0 ? 0 : iR;
        int iG                                      =   (int)Green;
        iG                                          =   iG > 255 ? 255 : iG;
        iG                                          =   iG < 0 ? 0 : iG;
        int iB                                      =   (int)Blue;
        iB                                          =   iB > 255 ? 255 : iB;
        iB                                          =   iB < 0 ? 0 : iB;                   
        int composite                               =   (alpha << 24) | (iR << 16) | (iG << 8) | iB;
        argb[i]                                     =   composite;
        }
        newBitmap.setPixels(argb, 0, original.getWidth(), 0, 0, original.getWidth(), original.getHeight());
        Store.lastBitmap                            =   newBitmap;
        return newBitmap;
    }

对亮度效果使用此选项:值应在1到100之间

代码语言:javascript
复制
public static Bitmap makeBrightnessBitmap(Bitmap original, int brightness){
        Bitmap newBitmap                            =   Bitmap.createBitmap(original.getWidth(), original.getHeight(),original.getConfig());
        int[] argb                                  =   new int[original.getWidth() * original.getHeight()];
        original.getPixels(argb, 0, original.getWidth(), 0, 0, original.getWidth(), original.getHeight());
        for (int i = argb.length - 1; i >= 0; --i) {
            int alpha                               =   argb[i] >> 24;
            int red                                 =   (argb[i] >> 16) & 0xFF;
            int green                               =   (argb[i] >> 8) & 0xFF;
            int blue                                =   argb[i] & 0xFF;                      
            int red2                                =   red + brightness;
            if (red2>0xFF) red2                     =   0xFF;
            if (red2<0) red2                        =   0;
            int green2                              =   green + brightness;
            if (green2>0xFF) green2                 =   0xFF;
            if (green2<0) green2                    =   0;
            int blue2                               =   blue + brightness;
            if (blue2>0xFF) blue2                   =   0xFF;
            if (blue2<0) blue2                      =   0;                 
            int composite                           =   (alpha << 24) | (red2 << 16) | (green2 << 8) | blue2;
            argb[i]                                 =   composite;
        }
        newBitmap.setPixels(argb, 0, original.getWidth(), 0, 0, original.getWidth(), original.getHeight());
        Store.lastBitmap                            =   newBitmap;
        return newBitmap;
    }
票数 1
EN

Stack Overflow用户

发布于 2012-02-17 16:24:44

基本的图片效果可以通过标准的android工具来实现。查看android.graphics包(它们使用原生图像格式和位图)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9324701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档