Я использую Python клиентскую библиотеку для API веб-альбомов Picasa для загрузки некоторых изображений JPEG в альбом. Но фотографии появляются очень сжатыми после загрузки. В Picasa 3.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')
Мне удалось решить эту проблему самостоятельно, и это оказалось странным: -)
Я спросил в Google Group для API данных Picasa, и люди говорили, что API не делает никакого сжатия при загрузке новых изображений. Это заставило меня посмотреть на другой код, а именно на urlfetch
.
Оказалось, что urlfetch
получает сжатый JPEG-образ. Но почему? Был ли параметр, который я забыл установить? Я просмотрел документацию и не нашел никаких ограничений.
И вдруг мне стало ясно, что происходит. Я тестировал это на своей локальной машине с помощью SDK Google App Engine, который подключен к Интернету с помощью мобильного широкополосного доступа от T-Mobile. И T-Mobile использует прокси для сжатия изображений при их загрузке. Для моего браузера Firefox я использую расширение для изменения заголовков HTTP, чтобы предотвратить это сжатие во время просмотра, но, конечно, urlfetch
не делал этого.
После этого загрузите исходное качество JPEG и загрузите его в Picasa без проблем.