我想要一个视图来返回图像数据。所以有些东西
return HttpResponse(image_data, mimetype=”image/png”)
我知道我能做到 file.read()
获取图像数据,但由于图像很小(如1x1像素),我想将其存储为字符串对象(或者我可以复制并粘贴到我的代码中的任何对象)。这样,每次查看视图时,我都会自行保存磁盘查找。
我该怎么做?我确信这很容易,我只是不确定用于搜索的术语。
附:我知道用Django通常不会以这种方式提供图像。
我想要一个视图来返回图像数据。所以有些东西
return HttpResponse(image_data, mimetype=”image/png”)
我知道我能做到 file.read()
获取图像数据,但由于图像很小(如1x1像素),我想将其存储为字符串对象(或者我可以复制并粘贴到我的代码中的任何对象)。这样,每次查看视图时,我都会自行保存磁盘查找。
我该怎么做?我确信这很容易,我只是不确定用于搜索的术语。
附:我知道用Django通常不会以这种方式提供图像。
这是一个简单的例子 django-openid项目
def logo(request):
return HttpResponse(
OPENID_LOGO_BASE_64.decode('base64'), content_type='image/gif'
)
# Logo from http://openid.net/login-bg.gif
# Embedded here for convenience; you should serve this as a static file
OPENID_LOGO_BASE_64 = """
R0lGODlhEAAQAMQAAO3t7eHh4srKyvz8/P5pDP9rENLS0v/28P/17tXV1dHEvPDw8M3Nzfn5+d3d
3f5jA97Syvnv6MfLzcfHx/1mCPx4Kc/S1Pf189C+tP+xgv/k1N3OxfHy9NLV1/39/f///yH5BAAA
AAAALAAAAAAQABAAAAVq4CeOZGme6KhlSDoexdO6H0IUR+otwUYRkMDCUwIYJhLFTyGZJACAwQcg
EAQ4kVuEE2AIGAOPQQAQwXCfS8KQGAwMjIYIUSi03B7iJ+AcnmclHg4TAh0QDzIpCw4WGBUZeikD
Fzk0lpcjIQA7
"""
这是一个简单的例子 django-openid项目
def logo(request):
return HttpResponse(
OPENID_LOGO_BASE_64.decode('base64'), content_type='image/gif'
)
# Logo from http://openid.net/login-bg.gif
# Embedded here for convenience; you should serve this as a static file
OPENID_LOGO_BASE_64 = """
R0lGODlhEAAQAMQAAO3t7eHh4srKyvz8/P5pDP9rENLS0v/28P/17tXV1dHEvPDw8M3Nzfn5+d3d
3f5jA97Syvnv6MfLzcfHx/1mCPx4Kc/S1Pf189C+tP+xgv/k1N3OxfHy9NLV1/39/f///yH5BAAA
AAAALAAAAAAQABAAAAVq4CeOZGme6KhlSDoexdO6H0IUR+otwUYRkMDCUwIYJhLFTyGZJACAwQcg
EAQ4kVuEE2AIGAOPQQAQwXCfS8KQGAwMjIYIUSi03B7iJ+AcnmclHg4TAh0QDzIpCw4WGBUZeikD
Fzk0lpcjIQA7
"""
你可以考虑使用 BASE64。但是您可能会发现性能提升几乎无关紧要,因为您的映像将存储在磁盘缓存中。我很想看到base64解码与磁盘访问的基准。您甚至可能会发现此优化会产生相反的效果。
编辑:我发现了这个 linux磁盘缓存上的页面 在做出这个决定时你可能会有兴趣阅读。只要您的磁盘活动不是太高,这个微小图像成为磁盘缓存一部分的可能性似乎很可能。