使用Python(GAE)读取图像颜色

时间:2008-10-10 09:56:47

标签: python google-app-engine image analysis

如何使用谷歌应用引擎使用python读取图像的颜色?

示例:我喜欢构建一个函数来确定图像最引人注目的颜色,以便为它设置谐波背景颜色。

3 个答案:

答案 0 :(得分:2)

Images API(目前)不包含像素级函数。引用概述文档:

  

注意:要在本地环境中使用Images API,必须先下载并安装PIL,即Python Imaging Library。 App Engine上没有PIL;它仅用作本地环境中Images API的存根。 App Engine上只提供图像API中提供的转换。

社区一直在寻求全面PIL支持,但看起来我们不得不等待。

答案 1 :(得分:2)

对于PNG,您可以使用PyPNG module - 轻量级纯Python PNG解码器/编码器。

import png

point = (10, 20) # coordinates of pixel to read

reader = png.Reader(filename='image.png') # streams are also accepted
w, h, pixels, metadata = reader.read()
pixel_byte_width = 4 if metadata['has_alpha'] else 3
pixel_position = point[0] + point[1] * w
print pixels[
  pixel_position * pixel_byte_width :
  (pixel_position + 1) * pixel_byte_width]

答案 2 :(得分:0)

如果您愿意在页面上放置Flash或Java小程序,您可以在客户端上执行此操作。我不确定像canvas或SVG这样的东西是否支持像素级操作,但是如果它们有,你可能能够在一些使用JavaScript的浏览器中使用它。

Flash或Java Applet可以是不可见的和可选的 - 您可以使用JavaScript来检测用户是否拥有该插件,并且只有这样才支持此功能。