Page 1 sur 1
Rotation de photo JPG.....sans perte ????
Publié : lun. 23/mai/2005 6:47
par olivier
Je cherche une lib ou un prog pour faire tourner mes photos (90,180,270°). Mais je voudrais aucune perte. J'ai trouvé des lib qui tournait les images mais si on fait quelque rotation d'affilé la déformation est énorme.
Merci d'avance et bonne prog

Publié : lun. 23/mai/2005 16:53
par Le Soldat Inconnu
Rotation sans perte, pour une rotation de 90, 180, ou 270, l'image n'est pas dégradé, je ne comprends pas

Publié : mar. 24/mai/2005 8:59
par olivier
Lorsque l'on retourne une image jpeg Point par point, il faut commencer par la décoder, et ensuite la recoder. Fait l'essais tu va voir que tres rapidement ton image est

.
Il faut , je pense, travailler à plus bas niveau pour obtenir une rotation sans perte. Il faut travailler sur l'image codé.
Mais là cela devient chaud, c'est pour cela que je cherche une lib toute faite.
Publié : mar. 24/mai/2005 13:46
par Frenchy Pilou
As-tu essayé celle du Soldat Inconnu ?
Ah oui ! Si j'en crois ce post
http://purebasic.hmt-forum.com/viewtopi ... ary+effect
Mais sinon, si elle ne marche pas (mais je ne pense pas qu'il y est un recalcul en jpg dedans) tu n'as qu'a faire cela
Affichage de l'image en Jpg (quelle soit codée n'a aucune importance puisque si tu l'affiches, c'est que pour tes yeux l'image semble parfaite)
Examen de l'écran pixel par pixel
Et avec une bouble boucles astucieuse tu réaffiches tes points comme bon te sembles

Comme l'image ne se dégrade pas entre les rotations, on ne "bouge" que des pixels, je ne vois pas le problème

Publié : mar. 24/mai/2005 15:46
par olivier
C'est pour un lecteur de photo, j'ai bien penser à enregistrer un paramêtre pour retourner les photos à chaque fois, mais c'est un peu lourd.
Non vraiment je voudrais pouvoir enregistrer réelement l'image retourner et la lib du SI ( a ce que j'avais essayer) déforme la photo.
Publié : mar. 24/mai/2005 17:37
par Le Soldat Inconnu
Ah non, elle ne déforme rien du tout, ton image, une fois chargée, est transformée en BMP, ensuite, tu la retournes avec la lib sans aucune perte (en utilisant la fonction ad'hoc, car il y en a 2 pour la rotation)
La perte, tu l'a quand tu réenregistres ton image sous forme de fichier *.jpg
Et je ne vois pas comment faire autrement, car le jpg est un format compressé, donc impossible d'intervenir directement sur le contenu du fichier.
Publié : mar. 24/mai/2005 18:27
par olivier
Et pourtant , tu prends ACdsee. Tu ouvre une image , tu la retourne, et tu la réenregistre. For i =1 to 5
Et regarde ton image elle est impecable !!!!
(Dans option tu as forcé la rotation sans perte)
Et c'est cela que j'aimerais faire.....

Publié : mar. 24/mai/2005 21:10
par djes
Oui il a raison, il est possible de faire tourner une image jpg d'un pas de 90° sans perte de compression; la plupart des visionneuses (acdsee mais aussi xnview) permettent cela. Cela tient sans doute au fait que la compression jpeg fonctionne avec des carrés de 16x16 dont il doit être possible de faire une transformation.
D'après la
FAQ de
l'IJG
There are a few specialized operations that can be done on a JPEG file without decompressing it, and thus without incurring the generational loss that you'd normally get from loading and re-saving the image in a regular image editor. In particular it is possible to do 90-degree rotations and flips losslessly, if the image dimensions are a multiple of the file's block size (typically 16x16, 16x8, or 8x8 pixels for color JPEGs). This fact used to be just an academic curiosity, but it has assumed practical importance recently because many users of digital cameras would like to be able to rotate their images from landscape to portrait format without incurring loss --- and practically all digicams that produce JPEG files produce images of the right dimensions for these operations to work. So software that can do lossless JPEG transforms has started to pop up. But you do need special software; rotating the image in a regular image editor won't be lossless.
Un autre lien :
http://sylvana.net/jpegcrop/
Quant à la recherche, tape sur Google lossless jpeg rotation
Publié : jeu. 26/mai/2005 17:35
par kelly
pour ne pas avoir de perte, le mieux est de la passer en BMP, puis de la faire tourner, puis de la repasser en JPG. Mais a propos de perte, je crois que XN View sait le faire...
Publié : jeu. 26/mai/2005 20:27
par djes
kelly a écrit :pour ne pas avoir de perte, le mieux est de la passer en BMP, puis de la faire tourner, puis de la repasser en JPG. Mais a propos de perte, je crois que XN View sait le faire...
C'est gentil de répondre, mais ce serait aussi très gentil de lire les précédents posts!

Publié : ven. 27/mai/2005 8:25
par Le Soldat Inconnu
Oui pas évident, cette affaire. Et j'ai pas envie de m'amuser à décrypter le format JPG pour faire une rotation, je l'ai déjà fait pour le format ICO pour ma lib IconEx et c'est long, la doc inexistante.
Publié : ven. 27/mai/2005 10:30
par Frenchy Pilou
la doc inexistante
http://www.jpeg.org/index.html?langsel=fr 
Il y a sûrement dans un coin tout ce qu'il faut

Publié : ven. 27/mai/2005 10:55
par djes
Y'a de la doc, et il y a un prog open source dans les liens que j'ai donné plus haut. Sinon, le plus simple est d'utiliser le prog jpegtran (de l'Independent JPEG Group, dont j'avais aussi donné le lien).
Il se trouve là :
http://sylvana.net/jpegcrop/jpegtran/
