8
votes

Choix de manière programmée Format de conversion d'image sur JPEG ou PNG pour Silverlight Afficher

J'ai un projet où j'ai besoin de convertir un grand nombre de types d'image à afficher dans une application Silverlight - TIFF, GIF, WMF, EMF, BMP, DIB, etc. Je peux faire ces conversions sur le serveur avant d'hydrater L'application Silverlight.

Cependant, je ne suis pas sûr quand je dois choisir de convertir à quel format, JPG ou PNG. Y a-t-il une sorte de standard comme TIFF devrait toujours être un JPEG et GIF devrait toujours être un PNG. Ou, si un BMP est 24 bits, il doit être converti en JPEG - tout bas et peut être un PNG. Ou tout est un png et pourquoi ?

Qu'est-ce que je suis habituellement Voir ou voir en réponse à ce type de question est " Eh bien, si la photo est une photo, allez avec JPEG " ou " s'il a des lignes droites, PNG est meilleur ". Malheureusement, je n'aurai pas le luxe de visualiser l'un des fichiers image du tout et je voudrais juste un moyen standard de le faire via le code, même s'il s'agit d'une zillion si / puis de déclarations.

Existe-t-il des normes ou des meilleures pratiques autour de ce sujet?


0 commentaires

3 Réponses :


1
votes

Un grand avantage de JPG sur PNG est que les JPGS fournissent un bon équilibre entre la taille de l'image et la qualité. Si la taille du fichier n'est pas une préoccupation, PNG est probablement la voie à suivre car elle offre plus de flexibilité que JPG. Cela ne répond pas vraiment à votre question, cependant.


0 commentaires

1
votes

Vous pouvez utiliser un service comme Smush.it - il vous dira le meilleur format optimisé pour les images et exécutez les compressions pour vous.

Si je me rappelle correctement, ils exécutent toutes les compressions sur chaque image, puis comparez les résultats ... Renvoyer le meilleur de l'ensemble.


1 commentaires

C'est un service intéressant, je ne l'avais pas vu auparavant. C'est un peu ce que je veux faire, sauf par moi-même, pas à travers un tiers. Cependant, je cherche la compression comme une deuxième étape - la conversion est d'abord et que j'ai besoin de quelques directives basées sur une sorte d'ensemble de propriétés requises d'un fichier image. Comme si myimage.rawformat = imageformat.gif et myimage.flags = imageflagshasalpha alors myImage.save (imagename & "." & Imageformat.png) sinon myImage.save (imagename & "." & Imageformat.jpg) . La vraie question est - existe-t-il un choix logique de choix de sortie basé sur l'entrée?



5
votes

the La chose la plus simple qui pourrait éventuellement fonctionner est "Garder tout le détail" ("100% Qualité "), c'est-à-dire toujours utiliser PNG plutôt que JPEG.

Les images PNG ont toujours l'air identique à l'original (c'est sans perte). Les images JPG regardent généralement de la même manière que l'original, mais sur certaines images (telles que la ligne d'art), JPG donne des artefacts de compression étranges (c'est une perte).

  • Cela n'aide pas à convertir des images JPEG en images PNG. Donc, passez les fichiers JPEG directement à travers sans conversion. Si un fichier de conteneur TIFF contient une image JPEG, extrayez-la dans un fichier de format JPEG standard; Sinon, il est probablement préférable de convertir ce fichier TIFF en PNG.
  • envisagez de faire à la fois un fichier JPEG et un fichier PNG; Si le fichier JPEG est "significativement" plus petit que le fichier PNG, utilisez le fichier JPEG.
  • ". EMF" et ".wmf" sont intrinsèquement vectoriels, plutôt que des graphiques raster. PNG est meilleur que JPEG pour les graphiques vectoriels, mais le meilleur serait un format de fichier de vecteur. Est-il possible d'utiliser le format graphique vectoriel standard (".SVG")?

1 commentaires

Merci David, c'est un très bon conseil, en particulier les 2 premières balles. Sur # 3, je ne peux pas utiliser SVG Malheureusement, Just Png et JPEG.