2016-11-20 2 views
0

Dans mon travail, j'utilise PHP GD lib fonction imagecopy pour ajouter un filigrane aux images, mais trouve l'image générée est plus grande que l'image d'origine avant, est-il possible d'optimiser taille de fichier, sauf le jpegoptim pour couper les métadonnées exif.PHP GD méthode image plus grande l'image que l'image d'origine

Le code de test sur le github: https://github.com/zeanwork/Watermark, u peut tester avec exmaple, la taille du fichier de to.jpg est trop grand que from.jpg et watermark.png filesize

enter image description here

fichier

mediainfo

enter image description here

Mais je ne veux pas que l'image avec filigrane est beaucoup plus grande que le fichier d'origine, dans mon test, le fileSize to.jpg Sometime 4 fois de l'image d'origine

les meilleures méthodes pour réduire la taille de fichier?

+0

Quelle est la qualité de l'appel inagejpeg (3e argument) – exussum

+0

J'ai ajouter une image mediainfo – Kewin

Répondre

2

C'est la qualité d'image, mais encore une fois, je ne pense pas qu'il soit possible d'avoir une taille d'image JPEG identique, même si vous copiez simplement une image jpg dans l'autre. Watermark enregistre l'image avec 100 qualité, qui est le plus grand. Je suppose que votre image originale n'a pas une telle grande qualité, donc la différence dans la taille du fichier.

Juste un coup d'oeil à 204 ligne du Watermark class:

# Save image 
$functionTarget($this->imgSource, $imgTarget, 100); 

Vous devez le coder en dur afin de changer la qualité.

+0

oui, merci, grâce à la commande pour obtenir la qualité de l'image d'origine: identifier -format '% Q' – Kewin