代码之家  ›  专栏  ›  技术社区  ›  Tom van Enckevort

通过picasa api上传图片时如何防止jpeg压缩?

  •  1
  • Tom van Enckevort  · 技术社区  · 15 年前

    我用的是巨蟒 client library 对于PicasaWebAlbumsAPI,可以将一些jpeg图像上载到相册。但上传后照片看起来压缩得很厉害。在Picasa3.6中,有一个选项可以在不进行任何压缩的情况下以原始质量上载图像,但是在API中是否有类似的选项可以使用?

    这是我用来创建照片并将其插入相册的一些代码:

    upload_photo = gdata.photos.PhotoEntry()
    upload_photo.summary = atom.Summary(text=title)
    upload_photo.title = atom.Title(text=file_name)
    upload_photo.text = atom.Text(text='Test')
    upload_photo.author = atom.Author(atom.Name(text='Test Author'))
    upload_photo.timestamp = gdata.photos.Timestamp(text='%i' % 
      int(time.mktime(photo_date.timetuple()) * 1000))
    upload_photo.geo = gdata.geo.Where()
    upload_photo.geo.Point = gdata.geo.Point()
    upload_photo.geo.Point.pos = gdata.geo.Pos(text='%f %f' % (lat, lon))
    
    imgContent = StringIO.StringIO(urlfetch.fetch('http://url.com/image1.jpg').content)
    
    gpclient.InsertPhoto(album_or_uri=album_url, photo=upload_photo,   
      filename_or_handle=imgContent, content_type='image/jpeg')
    
    1 回复  |  直到 15 年前
        1
  •  3
  •   Tom van Enckevort    15 年前

    我自己解决了这个问题,结果发现这是个奇怪的问题。

    我在谷歌集团询问了一下Picasa数据API,那里的人说,在上传新图片时,该API不做任何压缩。这让我看到了另一个代码,即 urlfetch .

    结果发现 乌尔费奇 正在获取压缩的jpeg图像。但是为什么呢?我忘记设置参数了吗?我查看了文档,找不到任何限制。

    然后我突然意识到发生了什么。我在我的本地机器上使用谷歌应用引擎软件开发工具包(Google AppEngine SDK)进行测试,该软件通过T-Mobile的移动宽带连接到互联网。T-Mobile在下载图像时使用代理压缩图像。对于我的Firefox浏览器,我使用一个扩展来修改HTTP头,以防止在浏览期间发生这种压缩,但是当然 乌尔费奇 不是这样的。

    更改后,它将下载原始质量的jpeg并将其上载到picasa,没有问题。