image resize (NK 1.7.9)< Sujet précédent  Sujet suivant >
Index du Forum -> DEVELOPPEMENT -> Modules
AuteurMessage
France.gif AntareS-DK
Member



Messages : 363
Inscrit(e) le: 13/11/2010
image resize (NK 1.7.9)

Salut !

Bon toujours dans le cadre de mon développement de module, j'avais un soucis pour uploader un fichier (merci zdav pour le coup du form) mais maintenant que j'upload bien mon image j'ai un autre soucis.

Je prend un fichier de 256px *256 que j'upload, jusque là tout va bien je l'affiche dans mon module (page d'admin ou page de visiteur) et j'ai un petit soucis de taille...

L'image est très grande alors que je voudrais qu'elle ne fasse que 30*30. Avant il y'avait un p'tit script imageresize...

j'ai regardé dans le module news et ces renvois qui renvois vers un autre renvois font que mon cerveau ne pige plus comment redimensionner une image.

la ligne 92 du ficher index du module news montre la fonction getimagesize, si j'ai bien compris vous lui balancer l'image de la catégorie afin de récuperer des informations sur cette dernière.

 

Puis à la ligne 94 vous insérer la balise image (img) puis vous lui spécifiez les largeur et hauteur qu'on a récupérer dans le tableau $infosimage.

Du coup je pige pas, comment je peux resizer une image de 256px en 30px si lors du redimensionnement je lui envois les première propriété qu'elle avait ?

En gros j'ai rien compris à la façon dont l'image est redimensionnée !

Mon objectif et de redimensionner les images uploadées avec un paramètre maxi sur un coté imaginons le width, le height doit donc être calculé automatiquement puis spécifié (IE est dans les parage )

j'avais pensé à mettre les paramètre moi même suivant mon thème mais si je change de theme oups vais devoir recalculer les pixel de plus si je spécifie un width et un height à 30 et que l'upload ne charge pas une image proportionnelle (width / height) ca risque d'être ratatiné ?

Auriez vous une explication sur comment redimensionner l'image (hauteur et largeur) de facon propotionnel, comme le fait le module news avec les images de la catégorie

Je l'aimais bien le scrip imageresize

je me penches actuellement sur la fonction php imageresize...

Merci

 

 



Edité par AntareS-DK le 10/10/2012 - 21:51:29

Vous avez un problème : Si au bout de cinq minutes vous n'avez pas compris comment cela fonctionnait, réessayez plus tard !
Si plus tard vous ne comprenez toujours pas, arrêter complètement c'est que c'est vous le problème.

Version Nuked Klan : 1.7.9

Posté le 10/10/2012 - 21:34:08   Revenir en haut | Permalien
Belgium.gif PePeRePeRveRs
Vice-Président Association

Messages : 3672
Inscrit(e) le: 13/06/2004
RE : image resize (NK 1.7.9)

Salut,

Il me semble qu'on ne redimensionne pas les images des catégories. Ni à l'upload, ni lorsqu'on les appelle dans le module. Éventuellement, peut-être, dans le css du thème...

Sinon, c'est pas très compliqué: la fonction getimagesize() renvoie un tableau avec 4 éléments:

1- la largeur
2- la hauteur
3- le type de l'image (0=gif, 1=jpg, 2=png,...)
4- les attributs (largeur et hauteur) pour la balise img


Donc, si tu fais:
 

$image_infos = getimagesize('images/ton_image.jpg'

echo $image_infos[0]; // affiche la largeur
echo $image_infos[1]; // affiche la hauteur
echo $image_infos[2]; // affiche le type
echo $image_infos[3]; // affiche width="xxx" height="yyy"

$new_width = $image_infos[0] * 50/100; // 50% de la largeur
$new_height = $image_infos[1] * 50/100; // 50% de la hauteur

// affiche l'image redimensionnée de la moitié, sans déformation
echo '';

Après (si tu veux aller plus loin), en comparant la hauteur et la largeur, tu peux savoir comment redimensionner l'image pour lui déterminer une largeur ou hauteur fixe.

Avec la fonction imagecopyresized, tu peux aussi créer une nouvelle image redimensionnée à ta guise pour virer la première qui serait trop grande ou pour créer des thumbs.

Bref, y'a de quoi faire



Avant d'ouvrir un sujet, n'oubliez pas de lire le règlement et faire une recherche sur le forum !

Posté le 11/10/2012 - 04:56:14   Revenir en haut | Permalien
France.gif AntareS-DK
Member



Messages : 363
Inscrit(e) le: 13/11/2010
RE : image resize (NK 1.7.9)

Salut,

bon je tente une réinsertion de ma fonction en cours de dev que voici :

functuin image_resize($file,$width=30, $height=30)
{
    $infosImage = getimagesize($file);
    $coef = $infosImage[0]/$width;
    $new_width = $infosImage[0]/$coeff;
    $new_height = $infosImage[1]/$coeff;

    return >> mes nouvelles valeurs !
}

 

Donc l'idée est de récupérer la taille du fichier de calculer un coeff puis de calculer les dimensions pour rester proportionnel sur largeur / hauteur.

Il y'aura bien sur des conditions de tests qui sont déjà en place puis d'autre qui me pose problème. Je test si file contien bien des données, je verifie d'autre chose comme le retour de getimagesize pour éviter la division par zéro ect...

 

Mon problème provient de getimagesize ou plutot de la fonction urlencode, je récupère mon url qui est présent dans la bdd.

"upload/mon_rep/mon_image.png" par exemple mais si je place un urlencode et bien il me remplace les slash par un caractère html mais du coup getimagesize si je lui vire le @ me retourne un warning no such file...

si je ne place pas d'urlencode ma fonction marche nickel...

j'ai testé l'urlencode il mets des %2F ce qui est logique, mais pourquoi getimagesize plante du coup...

si quelqu'un à des pistes je suis prenneur, je repasserais posté le code de ma fonction afin que vous me donniez vos avis...
En tout cas merci pour les pistes...

 

 

 



Edité par AntareS-DK le 12/10/2012 - 17:05:30

Vous avez un problème : Si au bout de cinq minutes vous n'avez pas compris comment cela fonctionnait, réessayez plus tard !
Si plus tard vous ne comprenez toujours pas, arrêter complètement c'est que c'est vous le problème.

Version Nuked Klan : 1.7.9

Posté le 12/10/2012 - 14:48:29   Revenir en haut | Permalien
Belgium.gif PePeRePeRveRs
Vice-Président Association

Messages : 3672
Inscrit(e) le: 13/06/2004
RE : image resize (NK 1.7.9)
Citation par AntareS-DK :

si je ne place pas d'urlencode ma fonction marche nickel...

tup
 



Avant d'ouvrir un sujet, n'oubliez pas de lire le règlement et faire une recherche sur le forum !

Posté le 12/10/2012 - 18:56:07   Revenir en haut | Permalien
France.gif Maxxi
Ancien

Messages : 516
Inscrit(e) le: 13/06/2004
RE : image resize (NK 1.7.9)

tient voici le script que j'ai retrouvé et qui fonctionne toujours pour moi, il me semble que je n'ai rien oublié dedans.

    function img_size($image, $largeur, $title, $image_resize)
    {
	if ($image_resize == "off") $test = 0;
	else if (eregi("http://", $image) && $image_resize == "local") $test = 0;
	else  $test = 1;

	if (!eregi("%20", $image) && $test == 1) list($w, $h, $t, $a) = @getimagesize($image);
	
	if ($w != "" && $w <= $largeur) $width = "width="" . $w . "" ";
	else $width = "width="" . $largeur . "" ";
	$image_resize = "

"; return($image_resize); } // largeur en pixel de la miniature $img_w = 90; // Fonction de redimensionnement des images (on, off, local) $image_resize = "on"; // Texte du titre $title = _ADDTHE . " " . strftime("%x %H:%M", $date); if ($url2 != "" && $url2 != "http://"){ $img = $url2; }else{ $img = $url;} $name = strrchr($img, '/' $name = substr($name, 1); $name_enc = rawurlencode($name); $img = str_replace($name, $name_enc, $img); img_size($img, $img_w, $title, $image_resize)

 



Edité par Maxxi le 19/10/2012 - 15:26:41
<p><strong><img alt="" src="http://i46.tinypic.com/ip8g0n.png" style="height:12px; width:20px" /> </strong><strong>d&eacute;veloppeur web auto-didacte</strong></p>
Posté le 19/10/2012 - 15:20:41   Revenir en haut | Permalien