【问题标题】:PIL im.putdata(seq, scale, offset) distance offset fail or I take it wrong?PIL im.putdata(seq, scale, offset) 距离偏移失败还是我弄错了?
【发布时间】:2012-07-19 14:33:27
【问题描述】:

在 PIL 中,我尝试在图像 im 上使用 putdata(seq, offset=distance)。 然而,结果并不是像往常一样理解偏移的距离,偏移也出现在 ImageChops.offset() 和 Image.offset() 中。 它最终导致了颜色的偏移。

比如原图im是带数据p的:

p = list(im.getdata())
p[:100]
[0, 0, 0, 0, 0,......]    #make the entries 0 for easy viewing

我最初的目的是将 im 偏移 9 个像素。不过,

im.putdata(p, offset=9)
newp=list(im.getdata())
newp[:100]
[9, 9, 9, 9, 9,......]    #result is 9 units "offset" in colour!!

这导致我的图像颜色偏移了 9 个单位!! putdata() 方法真的只偏移颜色还是我做错了什么? PIL 官方文档没有指定偏移量是距离(我猜想的)还是颜色。

【问题讨论】:

    标签: python python-imaging-library offset


    【解决方案1】:

    来自PIL documentation

    pixel = value * scale + offset
    

    再清楚不过了,像素值本身是偏移的,而不是它们的位置。

    也许你可以让pasteoffset 为你工作。

    【讨论】:

    • 耶!好的,也许我错过了这个表达式中的信息。确实,我有时会为一些数学表达式而头疼。无论如何,非常感谢您的提醒。但是,我认为如果它是一个距离偏移,它对我解决 Python Challenge lev 16 问题会更有意义和更有用。和平!
    猜你喜欢
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多