PIL ValueError:图像数据不足?

2024-03-02

当我尝试从 URL 获取图像并将其响应中的字符串转换为Image在 App Engine 内。

from google.appengine.api import urlfetch

def fetch_img(url):
  try:
    result = urlfetch.fetch(url=url)
    if result.status_code == 200:
      return result.content
  except Exception, e:
    logging.error(e)

url = "http://maps.googleapis.com/maps/api/staticmap?center=Narita+International+Airport,Narita,Chiba+Prefecture,+Japan&zoom=18&size=512x512&maptype=roadmap&markers=color:blue|label:S|40.702147,-74.015794&markers=color:green|label:G|40.711614,-74.012318&markers=color:red|color:red|label:C|40.718217,-73.998284&sensor=false"

img = fetch_img(url)
# As the URL above tells, its size is 512x512 
img = Image.fromstring('RGBA', (512, 512), img)

根据PIL http://www.pythonware.com/library/pil/handbook/image.htm#image-size-attribute,大小选项应该是像素元组。这是我指定的。有人能指出我的误解吗?


图像返回的数据是图像本身,而不是 RAW RGB 数据,因此您不需要将其作为原始数据加载,而是只需将该数据保存到文件中,它将是一个有效的图像,或者使用 PIL 打开它,例如(我已将您的代码转换为不使用 appengine api,以便任何具有正常 python 安装的人都可以运行 xample)

from urllib2 import urlopen
import Image
import sys
import StringIO

url = "http://maps.googleapis.com/maps/api/staticmap?center=Narita+International+Airport,Narita,Chiba+Prefecture,+Japan&zoom=18&size=512x512&maptype=roadmap&markers=color:blue|label:S|40.702147,-74.015794&markers=color:green|label:G|40.711614,-74.012318&markers=color:red|color:red|label:C|40.718217,-73.998284&sensor=false"
result = urlopen(url=url)
if result.getcode() != 200:
  print "errrrrr"
  sys.exit(1)

imgdata = result.read()
# As the URL above tells, its size is 512x512 
img = Image.open(StringIO.StringIO(imgdata))
print img.size

output:

(512, 512)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PIL ValueError:图像数据不足? 的相关文章

  • Python:使用 string.format() 将单词大写

    是否可以使用字符串格式将单词大写 例如 user did such and such format user foobar 应该返回 Foobar 做了这样那样的事情 请注意 我很清楚 capitalize 但是 这是我正在使用的代码 非常
  • 在 pandas 中单独打印一列的原始值?

    我有一个数据框 df pd DataFrame name george age 23 name anna age 26 现在我想检索乔治的年龄 df df name george age 但这会输出一些额外的信息以及原始值 0 23 Nam
  • 如何让python优雅地失败?

    我只是想知道如何让 python 在所有可能的错误中以用户定义的方式失败 例如 我正在编写一个处理 大 项目列表的程序 并且某些项目可能不符合我定义的格式 如果 python 检测到错误 它目前只会输出一条丑陋的错误消息并停止整个过程 但是
  • 以矢量化方式在另一个 DataFrame 中查找包含值子集的行

    如何匹配此 DataFrame 中的值source car id lat lon 0 100 10 0 15 0 1 100 12 0 10 0 2 100 09 0 08 0 3 110 23 0 12 0 4 110 18 0 32 0
  • Tipfy:如何在模板中显示blob?

    鉴于在 gae 上使用tipfy http www tipfy org python 以下模型 greeting avatar db Blob avatar 显示 blob 此处为图像 的模板标签是什么 在这种情况下 斑点是一个图像 这很棒
  • Perl 是否有相当于 Python 的 `if __name__ == '__main__'` 的功能?

    有没有一种方法可以确定当前文件是否是 Perl 源中正在执行的文件 在 Python 中 我们使用以下结构来做到这一点 if name main This file is being executed raise NotImplemente
  • 使用多级解决方案计算二维网格中的最近邻

    我有一个问题 在 x y 大小的网格中 我提供了一个点 并且我需要找到最近的邻居 在实践中 我试图在 pygame 中找到距离光标最近的点 该点跨越颜色距离阈值 计算如下 sqrt rgb1 0 rgb2 0 2 rgb1 1 rgb2 1
  • 将一维数组转换为下三角矩阵

    我想将一维数组转换为较低的零对角矩阵 同时保留所有数字 我知道numpy tril函数 但它用零替换了一些元素 我需要扩展矩阵以包含所有原始数字 例如 10 20 40 46 33 14 12 46 52 30 59 18 11 22 30
  • Python——捕获异常的效率[重复]

    这个问题在这里已经有答案了 可能的重复 Python 常见问题解答 异常有多快 https stackoverflow com questions 8107695 python faq how fast are exceptions 我记得
  • Tensorflow 不分配完整的 GPU 内存

    Tensorflow 默认分配所有 GPU 内存 但我的新设置实际上只有 9588 MiB 11264 MiB 我预计大约 11 000MiB 就像我的旧设置一样 张量流信息在这里 from tensorflow python client
  • 在 iPython/pandas 中绘制多条线会生成多个图

    我试图了解 matplotlib 的状态机模型 但在尝试在单个图上绘制多条线时遇到错误 据我了解 以下代码应该生成包含两行的单个图 import pandas as pd import pandas io data as web aapl
  • Python 3在for循环中更改字典键的值不起作用

    我的 python 3 代码没有按预期工作 def addFunc x y print x y def subABC x y z print x y z def doublePower base exp print 2 base exp d
  • pandas 中连续数据的平行坐标图

    pandas 的 parallel coordinates 函数非常有用 import pandas import matplotlib pyplot as plt from pandas tools plotting import par
  • Jupyter Notebook 中的深色模式绘图 - Python

    我正在使用 Jupyter Notebook 目前正在使用 JupyterThemes 的深色日光主题 我注意到我的绘图不是处于黑暗模式 并且文本仍然是黑色并且在日光照射的背景上无法读取 JupyterThemes 的自述文件建议在 ipy
  • 在seaborn中对箱线图x轴进行排序

    我的数据框round data看起来像这样 error username task path 0 0 02 n49vq14uhvy93i5uw33tf7s1ei07vngozrzlsr6q6cnh8w 39 png 1 0 10 n49vq
  • Selenium 不会在新选项卡中打开新 URL(Python 和 Chrome)

    我想使用 Selenium WebDriver 和 Python 在不同的选项卡中打开相当多的 URL 我不确定出了什么问题 driver webdriver Chrome driver get url1 time sleep 5 driv
  • 在 Python 中访问 argparse 的参数值

    我正在尝试为我的程序设置一些简单的标志参数 但无法弄清楚如何访问它们 我有 argparser parser argparse ArgumentParser description Simple PostScript Interpreter
  • Streamlabs API 405 响应代码

    我正在尝试使用Streamlabs API https dev streamlabs com Streamlabs API 使用 Oauth2 来创建应用程序 因此 首先我将使用我的应用程序的用户发送到一个授权链接 其中包含我的应用程序的客
  • 在python中对列表列表执行行总和和列总和

    我想用python计算矩阵的行和和列和 但是 由于信息安全要求 我无法使用任何外部库 因此 为了创建矩阵 我使用了列表列表 如下所示 matrix 0 for x in range 5 for y in range 5 for pos in
  • Python 中的字符串slugification

    我正在寻找 slugify 字符串的最佳方法 蛞蝓 是什么 https stackoverflow com questions 427102 in django what is a slug 我当前的解决方案基于这个食谱 http code

随机推荐

  • React-Google-Map 多个信息窗口打开

    我目前正在使用react google maps构建一个谷歌地图API 我想创建多个标记来在信息窗口上显示世界各地城市的信息 但由于它们都是来自 html 对象 每当我单击一个标记时 所有信息窗口都会打开 如果有办法解决这个问题吗 示例代码
  • Capybara 使用正则表达式匹配元素 id

    我正在使用Cocoon https github com nathanvda cocoongem 在 Rails 中构建嵌套表单 该 gem 为每个重复的表单元素分配一个随机数 以便区分它们 例如 id challenge events a
  • 查找批处理文件中文件的修改日期是否早于 N 小时,如果不是则发送电子邮件

    我认为这篇文章正是我正在寻找的 在批处理文件中查找文件是否早于 4 小时 https stackoverflow com questions 6928552 find out if file is older than 4 hours in
  • Android 上的 Java 对象在内存中是如何布局的?

    我对 HotSpot 中堆上对象的布局相当熟悉 但对 Android 不太熟悉 例如 在 32 位 HotSpot JVM 中 堆上的对象被实现为 8 字节标头 后面是对象的字段 一个字节表示boolean 四个字节用于引用 其他所有内容均
  • 在单独的线程上分派托管 Win32 WndProc

    我正在通过非托管创建一个窗口CreateWindowEx使用 PInvoke 作为服务器来进行调度SendMessage来自不同进程的调用 这应该包裹在一个同步函数 类注册 窗口创建 像这样 public bool Start if Run
  • 创建连接文件的最佳实践

    我有一个应用程序 其中有一些缓存 队列和数据库的配置文件 public class ServerConfiguration ConfigurationSection ConfigurationProperty FOO DefaultValu
  • 使用 State 和 IO 的堆叠 monad 时,在流程中停止理解

    在这个 Scala 示例中 当结果为以下时我需要停止StopNow 我需要在打电话后执行此操作decisionStep 我怎样才能做到这一点 case class BusinessState trait BusinessResult cas
  • 比较文件名

    我想比较两个不同文件夹中的文件 我只想比较这两个不同文件夹中具有相同名称的文件 我想做的是比较一个软件的两个不同版本并找出有多少文件被更改 这将帮助您获取两个路径的文件 import java io File import java uti
  • 为什么 python webassets pyscss 不能在调试模式下从 scss 文件重新生成 css?

    我在 python webassets 库中使用 pyscss 编译器 并将 webassets 调试配置全部设置为 true 但是 当我对 scss 文件进行更改并重新加载包含生成的 css 文件的页面时 我发现 css 文件尚未重新生成
  • int main() { } (不带“void”)在 ISO C 中有效且可移植吗?

    C 标准指定了两种形式的定义main为一个 托管实施 int main void and int main int argc char argv 它可以以与上述 等效 的方式定义 对于 例如 您可以更改参数名称 替换int通过 typede
  • 查询客户交易数据

    我正在构建一个类似于个人理财的应用程序 为此 我需要获取有关该客户交易的信息 我设法运行了获取基本个人数据 https developer paypal com docs classic permissions service integr
  • 带中缀表示法的点自由样式

    您好 有没有办法在使用中缀表示法时编写点自由样式 f Int gt Int gt Int gt Int f a b a b 为什么你不能做这样的事情 f Int gt Int gt Int gt Int f a b a b or f a b
  • 使用 control.begininvoke 后 UI 仍然没有响应

    我制作了一个 C winforms 应用程序 现在我有一个带有很多按钮的表单 这些按钮调用大量的数字运算函数 其输出在文本框中更新 我调用 textbox begininvoke 方法 将委托传递给更新文本框中文本的函数 但是当文本很大时
  • 无法在单用户模式下启动sql server

    我正在尝试恢复我的本地 sql server sa 密码 我读到应该将其置于单用户模式 我就这样做了 我添加了 m 到启动参数 我没有运行 sql 代理 我重新启动了 Sql Server 当我尝试时 sqlmd S sqlexpress
  • Ruby on Rails 中的模型关系

    我正在 Rails 3 中开发一个新应用程序 但我不确定如何建立模型之间的关系 基本上我有一个model User and a model Project 用户可以创建项目 成为项目所有者 但除项目所有者之外的任何其他用户也可以加入该项目
  • 如何检查数组中的非零值(元素)

    我想知道如何编写一个函数来返回是否至少有三个值不等于 0 我搜索过类似的问题 但找不到任何有效的解决方案 为了解释我的问题 这里有一个例子 我有一个包含这些元素的数组 1 0 2 0 4 0 0 3 0 0 我想检查是否至少有 3 个元素不
  • file.read()、file.readline() 和迭代文件对象之间的区别[重复]

    这个问题在这里已经有答案了 我是计算机科学的新手 正在尝试在 python 中创建一个函数来打开我的计算机上的文件 我知道这个函数f readline 将当前行作为字符串抓取 但是这些函数的作用是什么f read and for line
  • Python - 将日期的字符串表示形式转换为 ISO 8601

    在Python中 如何转换这样的字符串 2010 年 12 月 16 日星期四 12 14 05 0000 为 ISO 8601 格式 同时保留时区 请注意 原始日期是字符串 输出也应该是字符串 而不是datetime或类似的东西 不过 我
  • 将 abel 包裹在复合材料中

    I have ScrolledComposite只允许垂直滚动 heighthint 400 在这个 ScrolledComposite 中 我还有另一个CompositeA 滚动高度可能超过 400 来存储所有其他小部件 我有一个很长的标
  • PIL ValueError:图像数据不足?

    当我尝试从 URL 获取图像并将其响应中的字符串转换为Image在 App Engine 内 from google appengine api import urlfetch def fetch img url try result ur