Pourquoi réduire la taille de l'image augmente son poids ?

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous !

Dans le cadre d’un projet je voulais réduire le poids des images envoyer par les utilisateurs. Pour cela je réduis la taille de l’image si elle est trop grande et j’enlève les données exif pour les JPG. Malheureusement lors de mes essais le poids de l’image est plus grande après le redimensionnement… Quelqu’un c’est pourquoi ? J’utilise Imagick et Intervention.

Merci d’avance pour vos réponses !

Voici mon code :

$img = Image::make($this->file);
if ($img->height() > 750) {
    $img = $img->heighten(725);
}
if ($img->width() > 750) {
    $img = $img->widen(725);
}
$img = $img->save($this->file);
$img->destroy();

// Remove exif
$img = new Imagick($this->file);
$profiles = $img->getImageProfiles("icc", true);
$img->stripImage();
if(!empty($profiles)) {
    $img->profileImage("icc", $profiles['icc']);
}
$img->writeImage($this->file);
$img->destroy();

Édité par Oprax

Saying that Java is nice because it works on all OS’s is like saying that anal sex is nice because it works on all genders.

+0 -0

Cette réponse a aidé l’auteur du sujet

En fait c’est probablement l’utilisation d’un PNG qui est en cause. Le format PNG est incapable d’adapter un dégradé par lui même. Donc quand on réduit la taille de l’image, l’image est simplifié ce qui crée des vides qui sont comblés par des pixels supplémentaires, ainsi il y a une taille plus conséquente.

+0 -0

Cette réponse a aidé l’auteur du sujet

Sans rentrer dans le détail, c’est vraiment une question de format et d’algorithme de compression.

Si ton image est remplie de détails style "image naturelle / photo", alors le format JPEG est capable de la compresser plus efficacement, en perdant des informations mais sans que ça ne se voit vraiment à l’œil nu.

À l’opposé, si ton image est un logo, ou plus généralement quelque chose de généré synthétiquement et "clean", la compression PNG est faite pour limiter la perte de qualité dans ce scénario.

Les deux ne sont pas vraiment interchangeables.

I was a llama before it was cool

+0 -0
Auteur du sujet

En effet, les images (au format PNG) sont des photos avec du contenu (rond/rectangle avec du texte à l’intérieur) rajouter par dessus, je vais voir si en JPG ça rend mieux ^^

Saying that Java is nice because it works on all OS’s is like saying that anal sex is nice because it works on all genders.

+0 -0

Cette réponse a aidé l’auteur du sujet

Comme dit plus haut, le JPEG à des pertes quand il a une qualité inférieur à 100%, ce qui signifie que certain pixel ne sont plus stocké (pour vulgariser un tiers des informations va être sauvegardé).

Je rajouterais juste une explication :

Quand tu réouvres l’image, tous les pixels vont être redéfini pour se trouver à un ratio de 1 (toutes les informations sont en mémoire), si tu laisses cette qualité à 100%, tu vas sauvegarder des informations que tu n’avais pas avant et donc avoir un plus gros fichier.

Donc il faut jouer à la fois sur la taille et aussi sur la qualité.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte