首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PIL在不影响边缘的情况下替换颜色

PIL在不影响边缘的情况下替换颜色
EN

Stack Overflow用户
提问于 2014-10-07 15:39:46
回答 1查看 71关注 0票数 0

我有一个用黑线绘制的相对复杂的图像,我想将背景颜色从白色更改为随机颜色。

使用PIL,我将所有非黑色像素替换为颜色:

代码语言:javascript
运行
AI代码解释
复制
  pixels = output.getdata()
  newPixels = []

  for pixel in pixels:
    if pixel[0] != 0 and pixel[1] != 0 and pixel[2] != 0:
      newPixels.append(color)
    else:
      newPixels.append(pixel)

  output.putdata(newPixels)

当我替换边缘平滑时,这使得线条都参差不齐,而不是完全黑色的像素。有什么解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2014-10-07 15:57:38

看起来你想保留纯黑色而替换纯白色。其他的都需要混合在一起。

下面是进行混合的最简单方法:

代码语言:javascript
运行
AI代码解释
复制
newPixels.append([pixel[i] * color[i] // 255 for i in (0,1,2)])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26239906

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文