是否可以使用来自 python 脚本的 google app engine python 图像库从本地文件系统加载图像文件?还是必须从数据存储中加载图像?我可以成功加载一个文本文件并显示它的内容。
我正在使用带有 Python 2.7 的谷歌应用引擎并使用 PIL 成像库。我在 Mac OS X 10.8.2 上使用 PyCharm 和 Google App Engine Launcher。我正在使用从源代码构建的 PIL 1.1.7 版本。
我想在我的 python 脚本的响应输出中返回它们之前对图像(或图像)执行一些操作。
当我使用该Image.image( filename=<filename> )
函数时,我得到的错误通知我文件名必须以“/gs”开头。__init()__
如果我向 Image 构造函数提供文件名,则进入Image 对象的方法向我展示了用于blobstore.create_gs_key()
创建 blobkey 的方法。
因为我有一组想要操作的固定图像,所以我希望避免手动将它们上传到数据存储中进行检索。
我的微不足道的应用程序处理程序目前看起来像这样;
class ChallengeImageHandler( webapp2.RequestHandler ):
def get(self):
olifant = images.Image( filename='gs/challenge/C017.png' )
logging.debug( "olifant.width=%d" % olifant.width );
logging.debug( "olifant.height=%d" % olifant.height );
self.response.headers[ 'Content-Type' ] = 'image/png'
self.response.out.write( olifant )
return
我的 app.yaml 看起来像这样;
application: hello_world
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /images
static_dir: images
- url: /.*
script: main.application
- url: /software_development.html
script: main.application
libraries:
- name: jinja2
version: latest
- name: PIL
version: latest
我知道我可以通过静态提供图像来获得相同的结果,但是一旦我成功地加载了图像,我希望在提供图像之前对其进行操作。我故意将我希望从我的应用程序加载的图像放置在一个单独的目录中,而不是/images
. 它们位于名为 的子目录中gs/challenge
。
非常感谢任何帮助、建议或解决方案。也许我正在以完全错误的方式解决这个问题?