Diminuer la taille de vos .png, .jpg ou .jpeg et .pdf sans changer leur qualité



  • Salut !

    J'ai trouvé une astuce que je ne trouve pas assez répandu et qui vaut vraiment le détour !

    Pour ma part mes ressources (les images .png) pèse 75 % de mon mod compilé, embêtant…

    Cependant ce site: http://compresspng.com/fr/ fais simplement des miracles, il diminue considérablement la taille de vos images .png et la qualité n'est en aucun cas changé ! Juste fantastique, les seuls problèmes étant qu'il faut faire vos fichiers 20 par 20... Et le site rajoute un -min à la fin des images...

    Pour résoudre le problème de -min à la fin des fichiers et ne pas à avoir renommer beaucoup de fichier j'ai mis au point ce mini algorithme:

    package fr.benjaminloison.patchoptimizationpng.main;
    
    import java.io.File;
    
    import org.apache.commons.lang3.SystemUtils;
    
    public class PatchOptimizationPNG
    {
    public static void main(String[] args)
    {
    clean(new File(new File("").getAbsolutePath() + slash()).list());
    }
    
    private static String slash()
    {
    if(SystemUtils.IS_OS_LINUX)
    return "//";
    else
    return "\\";
    }
    
    private static void clean(String[] files)
    {
    for(int i = 0; i < files.length; i++)
    {
    File file = new File(files*);
    String path = file.getAbsolutePath();
    if(file.isDirectory())
    {
    String pathFile = path + slash(), underFiles[] = new File(pathFile).list();
    for(int j = 0; j < underFiles.length; j++)
    underFiles[j] = pathFile + underFiles[j];
    clean(underFiles);
    }
    else if(path.contains("-min"))
    file.renameTo(new File(path.replace("-min", "")));
    }
    }
    }
    

    Voici la version compilé en pièce jointe (org.apache.commons.lang3.SystemUtils est compris en library dedans).

    Vous n'avez qu'à lancer en double cliquant sur le .jar et attendre quelques instants et c'est bon, pas besoin d'utiliser de console Windows etc rapide, simple et efficace, mon programme s'occupe aussi des sous-dossiers.

    En espérant que cette astuce soit utile à beaucoup 🙂

    Ps: Si vous-voulez encore baisser la taille de votre mod, séparé le client du serveur et inversement 😉

    • Cette astuce fonctionne pour toute image .png en général hein ^^ Pas que pour les ressources de Minecraft ! 😄

  • Correcteurs

    C'est un peu inutile étant donné que tu peux faire ça avec un batch.


  • Rédacteurs

    Oui je pensais aussi qu'il allait faire un bash


  • Administrateurs

    File.separator au lieu de ta fonction slash.



  • @'DiabolicaTrix':

    C'est un peu inutile étant donné que tu peux faire ça avec un batch.

    Tu parles de l'optimisation ou d'enlever le -min ? J'ai fais un programme Java parce que .bat .sh .bash enfin bon je n'avais pas envie de me casser la tête ^^

    Merci Robin je l'avais déjà vu mais je doutais encore de son efficacité 🙂

    EDIT: Si certains sont intéressé par faire l'optimisateur en batch je suis intéressé 🙂



  • Y a beaucoup, beaucoup, beaucoup plus simple… Régler correctement l'éditeur d'image à la base...
    Les textures minecraft fonctionnent au pixel, que tu mette le réglage minimal ou maximal tu aura le même rendu visuel... Pour 1000 fois plus d'espace disque.



  • Il y a beaucoup plus simple et plus optimisé. De plus la différence de taille sur de si petites images ne change pas grand chose



  • @SCAREX : nop ! J'ai testé l'enregistrement en qualité "par défaut" (72dpi) sur du 16*16 : 15ko. Les images de basent dispo sur minecraft sont à moins de 1ko. c'est 15 fois plus gourmand en ressources pour une texture. Ça n'as certe rien de bien méchant seul, mais répète ça autant de fois qu'il y a de texture (+/- 10 000 pour une modpack)…


  • Correcteurs

    @'Benjamin Loison':

    @'DiabolicaTrix':

    C'est un peu inutile étant donné que tu peux faire ça avec un batch.

    Tu parles de l'optimisation ou d'enlever le -min ? J'ai fais un programme Java parce que .bat .sh .bash enfin bon je n'avais pas envie de me casser la tête ^^

    Merci Robin je l'avais déjà vu mais je doutais encore de son efficacité 🙂

    EDIT: Si certains sont intéressé par faire l'optimisateur en batch je suis intéressé 🙂

    Je parlais bien d'enlever le "-min" et non un optimisateur en batch. Par contre, comme Jodge l'a souligné, changer les paramètres pourrait faire le même travail à mon avis.

    D'ailleurs, si tu es interessé par le script:

    @echo off
    setlocal enabledelayedexpansion
    for %%f in (%CD%\*.txt) do if %%f neq %~nx0 (
        set "filename=%%~nf"
        ren "%%f" "!filename:~0,-4!%%~xf"
    )
    


  • @'SCAREX':

    Il y a beaucoup plus simple et plus optimisé. De plus la différence de taille sur de si petites images ne change pas grand chose

    Quand je fais ça pour le fond d'écran de mon menu principale en 1800x1000 ça vaut quand même le coup de perdre un Mo pour un mod ^^

    Merci Diabolicatrix je testerai à l'occasion 😉

    EDIT: Ton algorithme ne fonctionne que pour le dossier où le batch file est et pas pour les sous-dossiers, c'est dommage, j'apprendrai le batch à l'occasion 😄


  • Correcteurs

    Je viens de voir ton EDIT.

    Effectivement, il ne fonctionne que pour le dossier dand lequel il est exécuté, je pourrais voir pour le rendre récursif.

    EDIT: Je l'ai modifié pour le rendre récursif.

    @echo off
    setlocal enabledelayedexpansion
    for /r %CD%\ %%f in (*.txt) do if %%f neq %~nx0 (
       set "filename=%%~nf"
       ren "%%f" "!filename:~0,-4!%%~xf"
    )
    


  • @'DiabolicaTrix':

    Je viens de voir ton EDIT.

    Effectivement, il ne fonctionne que pour le dossier dand lequel il est exécuté, je pourrais voir pour le rendre récursif.

    EDIT: Je l'ai modifié pour le rendre récursif.

    @echo off
    setlocal enabledelayedexpansion
    for /r %CD%\ %%f in (*.txt) do if %%f neq %~nx0 (
       set "filename=%%~nf"
       ren "%%f" "!filename:~0,-4!%%~xf"
    )
    

    Merci beaucoup 😉