2010-10-22 3 views
2

Je développe une application d'impression d'affiches web-to-print.PHP JPEG Crop: Perte de qualité?

J'envisage d'utiliser PHP pour rogner des images téléchargées par des utilisateurs, et nous finirons par imprimer l'image recadrée en PHP. Mon souci est qu'il y aura une différence de «qualité» entre l'image originale téléchargée par l'utilisateur, et l'image après avoir été rognée par PHP.

Est-ce que PHP affectera la qualité de l'image lors de sa manipulation? Ou préserve-t-il la qualité de l'image et recadre-t-elle simplement la zone concernée?

Un grand merci,

BK

Répondre

3

JPEG est une compression avec perte. Un peu de simplification excessive, mais cela fonctionne en analysant les pixels autour d'autres pixels pour voir à quel point ils sont similaires. Tous les pixels ne sont pas stockés, ce qui signifie qu'il n'est pas possible de couper simplement les octets des données d'image pour effectuer le recadrage. Si vous produisez du JPEG, vous compresserez à nouveau une image déjà compressée, et vous aurez une perte de qualité. Cependant, si vous rognez l'image et que votre sortie est un format non-lossy, vous n'aurez pas de perte de qualité. Pour être clair, la perte de qualité n'est pas dans le fonctionnement de la récolte. C'est dans la façon dont l'image est elle-même compressée. Si l'image source est compressée avec JPEG, la qualité a déjà été perdue. Lorsque vous rognez cette image, vous ne perdez rien de plus, mais si vous produisiez à nouveau du JPEG par la suite, cela nécessiterait une recompression, et donc plus de perte. Donc, à la fin, faites votre PNG de sortie finale ou quelque chose de non-perte et vous n'avez rien à craindre.

+0

Merci Brad. Répondu à ma question! – kaese

+0

Heureux de vous aider! Vous devriez le marquer comme la réponse acceptée alors. – Brad

+0

En fait, si vous recadrez le JPEG à un multiple de la taille du bloc logiciel spécialisé peut enregistrer le JPEG sans le réencoder. –

Questions connexes