Non identifié (S’identifier/S’inscrire)

Catégories

Vanilla 1.1.2 is a product of Lussumo. More Information: Documentation, Community Support.

    • CommentAuthorfx07s
    • CommentTimeNov 28th 2007 édité
     
    Salut, tout d'abord, merci pour cette superbe galerie, rapide a installé, vraiment tip top !

    MAIS !!

    J'ai un petit problème, en effet, j'ai une sacré perte de qualité lors de l'upload de mes photos, alors que dans les options, il est bien mis sur "sans perte 100%" ...

    Voici un exemple de mon problème, a gauche la photo sur mon DD, a droite sur picsengine...

    http://img153.imageshack.us/img153/3557/snapzproxcapture001fq5.jpg

    Merci
    • CommentAuthorbeber
    • CommentTimeNov 29th 2007
     
    Bonne question...
    Pour t'aider à comprendre ce qui se passe j'ai fait quelques tests et en fait l'import ne fonctionne pas comme je pensais.
    Je croyais que le pourcentage s'appliquait à la résolution : 100%, pas de modif et possibilité de retailler ses images en plus petit à l'import si on veut. Mais non, la résolution n'est pas modifiée. Dans tous les cas, chaque image sera traitée et resauvegardée en jpeg, et le pourcentage correspond à la qualité jpeg (taux de compression).
    Le jpeg est un format de compression à perte et à chaque compression on perd de la qualité. Compression obligatoire à l'import = perte obligatoire de qualité à l'import (sauf si tu utilises 100% et encore...).
    Lors de l'import, une nouvelle image est créée dans /pictures/large (c'est celle qui sera utilisée après, tu peux retirer celle d'import). Si tu utilises 100%, tu auras une image bien plus grosse (x4 environ si ton image d'origine était à 80%), pour une image de qualité égale ou inférieure. Donc impact côté hosting (embêtant de multiplier par 4 son espace sans gagner de qualité), et temps de chargement pour les utilisateurs de ta galerie.
    Côté solution... Mmmm, disons que si tu as peu d'images à transférer et que tu es courageux (ou plutot patient), tu peux uploader des photos en qualité top (grosses donc), les passer à la moulinette d'import en 100%, récupérer les fichiers correspondants dans /pictures/large (par ftp GET), tu les reconnaitras par la date, les recompresser chez toi comme tu veux, puis les réuploader dans /pictures/large. C'est très fastidieux.
    Autre solution, si tu connais le php et n'a pas peur de remonter tes manches : recoder la procédure d'import en ajoutant par exemple une option "pas de traitement".

    Mais je digresse... Dans ton cas, avec 100%, la différence aurait du être minime, mais elle saute aux yeux dans ta capture d'écran. Donc soit la librairie de compression jpeg utilisée par l'import est en faute, soit tu visualises la photo locale avec un logiciel qui effectue un lissage (et autres traitement) à l'affichage. Je penche plutot pour la seconde possibilité car dans mon cas, les images finales ne sont pas ou peu dégradées. Si c'est bien le cas, tu avais une image de qualité moyenne à la base, que tu visualises sur ton ordinateur avec un logiciel qui la fait paraitre plus belle, et tu le compares avec un rendu plus "brut". Essaie de visualiser en local avec un viewer plus basique, genre un navigateur internet.

    Une option "pas de traitement" rendrait l'import beaucoup plus rapide : seulement insertion en base de donnée et move du fichier JPG pour le renommer dans l'autre répertoire, mais plus de traitement + recompression jpeg obligatoire.

    Pour terminer je tiens à préciser que mes remarques et suggestions ne sont pas des critiques de picsengine, qui est un produit très bien réalisé, beau et facile d'utilisation. Joli boulot !
    Question subsidiaire : Il y a une option d'import sans traitement dans la V3 ?
    • CommentAuthorThierry
    • CommentTimeDec 16th 2007
     
    Bonjour,
    Ayant moins aussi constaté une modification des JPEG envoyés en 100% (taille supérieure + éclaircissement), j'ai modifié le code de la fonction jpg dans le fichier admin/library/System.Picture.php de sorte que, lorsqu'on envoie un fichier JPEG en choisissant "Sans perte 100%", celui-ci est simplement copié au lieu d'être recompressé. Ci-après le code modifié :

    function jpg($file="",$toFile,$quality="90") {
    $toFile = $this->core->base . $toFile;
    $info = getimagesize($this->getFile($file));
    if ($info[2] == '2' && $quality == "100" ) // si le type est JPEG et la qualité 100%
    {
    $r = copy($this->getFile($file), $toFile); // on se contente de copier le fichier
    }
    else
    {
    if ($info[2] == '1')
    $imageSrc = @imagecreatefromgif($this->getFile($file));
    else if ($info[2] == '2')
    $imageSrc = @imagecreatefromjpeg($this->getFile($file));
    else if ($info[2] == '3')
    $imageSrc = @imagecreatefrompng($this->getFile($file));
    else
    return false;

    $r = imagejpeg($imageSrc, $toFile, $quality);
    imagedestroy($imageSrc);
    }
    return $r;
    }
    • CommentAuthorpierk
    • CommentTimeDec 21st 2007
     
    Bonsoir Thierry
    J'ai suivi ton conseil et changé le fichier admin/library/System.Picture.php mais j'obtiens un message d'erreur :

    Parse error: syntax error, unexpected T_ELSE, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/140/sdb/1/0/pierk/picsengine/admin/library/System.Picture.php on line 16

    Alors j'ai modifié ton code pour le suivant :

    <?PHP
    require_once(cROOT."library/System.File.php");
    class Picture extends File {
    function jpg($file="",$toFile,$quality="90") {
    $toFile = $this->core->base . $toFile;
    $info = getimagesize($this->getFile($file));
    if ($info[2] == '2' && $quality == "100" )
    $r = copy($this->getFile($file), $toFile);
    if ($info[2] == '1')
    $imageSrc = @imagecreatefromgif($this->getFile($file));
    else if ($info[2] == '2')
    $imageSrc = @imagecreatefromjpeg($this->getFile($file));
    else if ($info[2] == '3')
    $imageSrc = @imagecreatefrompng($this->getFile($file));
    else
    return false;
    $r = imagejpeg($imageSrc, $toFile, $quality);
    imagedestroy($imageSrc);

    return $r;
    }

    Cette fois, chez moi cela fonctionne correctement mais comme je ne suis pas programmeur je me demande si ton code que j'ai "bidouillé" remplit encore la fonction que tu avais voulu implémenter (simple copie au lieu de recompresser)...

    Merci

    Est-ce que tu peux jeter un oeil sur mon code STP ?

    Merci

    Pierre
    • CommentAuthorThierry
    • CommentTimeDec 22nd 2007
     
    Bonjour Pierre,

    Attention je ne conseille rien ! Je me contente d'expliquer ce que j'ai fait pour parvenir à mes fins.

    Le code tel que tu l'as modifié produit le même résultat que le code d'origine, puisque dans un premier temps il copie le fichier soumis, mais ensuite il recrée quand même un JPEG qui va remplacer la copie.

    Tu as dû manquer une accolade en recopiant mon code. Je t'envoie le fichier modifié par email.
    • CommentAuthorpierk
    • CommentTimeDec 22nd 2007
     
    Bonsoir Thierry,
    Merci d'avoir pris le temps de regarder le code que j'avais modifié.
    Et merci pour le fichier que tu envoies par mail.
    Amicalement et Bonnes Fêtes de fin d'année.
    Pierre