diodio13fr a écritBon avec un peu de retard:
avec le script d'origine j'ai en réponse résolution 0x0 sur plusieurs photos ou images.
en faisant la modif j'obtiens la vrai résolution.
c'est grave docteur 😃
Non, c'est plutôt cool, car on vient de trouver l'origine du problème 😉
Les fonctions "width" et "height" de imlib2 sont récentes, les fonctions précédentes "get_width" et "get_height" sont considérées obsolètes même si elles fonctionnent avec la nouvelle version de Imlib2. Simplement, ta version de Imlib2 sur edgy ne connait que ces dernières fonctions, d'ou l'erreur...
diodio13fr a écritsi je comprend bien la 1° version ne détecte pas la résolution donc si je ne souhaite pas réduire l'image il me la copie en taille 0x0. alors que si je souhaite réduire il se fout de la résolution d'origine et me fait un redimensionnement à la résolution souhaité. j'ai tout bon??
Grosso modo... Plus simplement, tout l'algo de redimensionnement est basé sur la taille originale de l'image. Même si la résolution est gardée à l'identique, une image est recrée par imlib2 (afin que tu puisses changer le taux de compression...). Si ces fonctions renvoient rien, tout part en vrille...
diodio13fr a écritla 2° version quant à elle arrive a trouver la résolution d'origine donc l'envoi sans redimensionner fonctionnera. quel fichier je doit éditer de la même facon que le script d'essai pour y remédier??
c'est toujours bon?
Je prépare une nouvelle version qui utilisera "get_*" en cas d'echec de la nouvelle fonction
En attendant, tu peux simplement éditer ~/.gnome2/mailpictures/CoreFunctions.pm :
Ligne 57 et 58
if (eval { $current_img=Image::Imlib2->load($_) }) {
$img_width = $current_img->width;
$img_height = $current_img->height;
à remplacer par :
if (eval { $current_img=Image::Imlib2->load($_) }) {
$img_width = $current_img->get_width;
$img_height = $current_img->get_height;
diodio13fr a écritpour la hauteur et la largeur tu as trouvé?
Je pense que c'est directement lié au problème précédent...
----------------------------------------
/EDIT : si tu veux bien encore passer 10 sec de beta-testing, la modif complète :
# Stop here if file is not an image
if (eval { $current_img=Image::Imlib2->load($_) }) {
$img_width = $current_img->width;
$img_height = $current_img->height;
# Resize only if user request
A remplacer par :
if (eval { $current_img=Image::Imlib2->load($_) }) {
$img_width = $current_img->width;
$img_height = $current_img->height;
# For old Imlib2 calls
$img_width = $current_img->get_width if !($img_width);
$img_height = $current_img->get_height if !($img_height);
# Resize only if user request