1 votes

Comment empêcher la compression JPEG lors du téléchargement d'une image via l'API Picasa ?

J'utilise le programme Python bibliothèque de clients pour l'API Picasa Web Albums afin de télécharger certaines images JPEG dans un album. Mais les photos apparaissent très compressées une fois téléchargées. Dans Picasa 3.6, il existe une option permettant de transférer les images dans leur qualité d'origine sans aucune compression. Existe-t-il une option similaire que je puisse utiliser à partir de l'API ?

Voici une partie du code que j'utilise pour créer la photo et l'insérer dans l'album :

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')

3voto

Tom van Enckevort Points 3462

J'ai réussi à résoudre ce problème moi-même, et il s'est avéré être bizarre :-)

J'ai posé des questions sur le groupe Google pour l'API de données Picasa et les personnes présentes m'ont dit que l'API n'effectuait aucune compression lors du téléchargement de nouvelles images. Cela m'a conduit à examiner l'autre code, à savoir l'API urlfetch .

Il s'est avéré que le urlfetch a obtenu l'image JPEG compressée. Mais pourquoi ? Y avait-il un paramètre que j'avais oublié de régler ? J'ai parcouru la documentation et je n'ai trouvé aucune limitation.

Et puis j'ai soudain compris ce qui se passait. J'étais en train de tester ce système sur ma machine locale, à l'aide du SDK de Google App Engine, qui est connectée à l'internet par l'intermédiaire du réseau mobile à large bande de T-Mobile. Et T-Mobile utilise un proxy pour compresser les images lorsque vous les téléchargez. Pour mon navigateur Firefox, j'utilise une extension qui modifie les en-têtes HTTP afin d'empêcher cette compression pendant la navigation, mais bien sûr, l'application urlfetch ne faisait pas ça.

Après avoir changé cela, il télécharge le JPEG de qualité originale et le transfère sur Picasa sans problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X