• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何使用 ios-image-filters 在 Photoshop 中更改 UIImage 的颜色级别?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 13:36:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我必须更改 UIImage 的颜色级别,并根据此 post我正在尝试使用开源库 ios-image-filters但是不知道怎么用方法
- (UIImage*) levelsNSInteger)black midNSInteger)mid whiteNSInteger)white;

我不是设计师,我不太了解 Photoshop
这是 Photoshop 的屏幕截图和我应该应用于我的 UIImage 的颜色级别: Screenshot of photoshop

这是我尝试使用 levels 方法的方法:

UIImage *image = [UIImage imageNamed"my_image.png"];
image = [image levels:45 mid:0.95 white:238]; // 0.95 is float/double and it's obviously not the good way to do what I want. 

根据方法注释,所有参数的值都应该在 0-255 之间。 但是 Photoshop 中的 mid 参数是一个值 -9.99-0.01

Photoshop 中的黑白级别显然是很好的值,但我不明白中间值是如何工作的。我应该如何转换它?

所以我的问题是:如何像在 Photoshop 中一样使用 levels 方法?



Best Answer-推荐答案


我不确定它们是否完全可比。查看源代码,该库的 levels 方法正在调用一个简单的线性插值函数(暂时忽略 whiteblack 的东西,然后关注 mid 以及它如何影响 color):

int calcLevelColor(int color, int black, int mid, int white)
{
    if (color < black) {
        return 0;
    } else if (color < mid) {
        int width = (mid - black);
        double stepSize = ((double)width / 128.0f);
        return (int)((double)(color - black) / stepSize);
    } else if (color < white) {
        int width = (white - mid);
        double stepSize = ((double)width / 128.0f);
        return 128 + (int)((double)(color - mid) / stepSize);
    }

    return 255;
}

但是 Photoshop 在“级别”中的中点使用了一个 gamma 值,一个指数函数,其结果是 color^(1/gamma),即 pow(color, 1.0/gamma)(其中 color 是介于 0.0 和 1.0 之间的值,gamma 大于零且小于十)。这就是为什么 Photoshop 中点的值遵循对数刻度而不是线性刻度的原因。


如果你想使用像 Photoshop 这样的中点值(无论如何,对于照片来说,它可能比这个 ios-image-filters 库中的再现更好)使用 How can I map Photoshop's level adjustment to a Core Image filter? 中讨论的 Core Image 滤镜。 .

关于ios - 如何使用 ios-image-filters 在 Photoshop 中更改 UIImage 的颜色级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240466/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap