擅长:python、mysql、java
<p>你需要先转换成灰度。我所做的:</p>
<ol>
<li>使用<code>Image.split()</code>获取原始alpha层</li>
<li>转换为灰度</li>
<li>使用<code>ImageOps.colorize</code>着色</li>
<li>放回原始alpha层</li>
</ol>
<p>结果代码:</p>
<pre><code>import Image
import ImageOps
def tint_image(src, color="#FFFFFF"):
src.load()
r, g, b, alpha = src.split()
gray = ImageOps.grayscale(src)
result = ImageOps.colorize(gray, (0, 0, 0, 0), color)
result.putalpha(alpha)
return result
img = Image.open("image.png")
tinted = tint_image(img, "#33b5e5")
</code></pre>