Redimensionarea unei imagini cu php

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori


Avatar utilizator
SHORTY-X
PHPRomania Supporter
Mesaje: 20
Membru din: Joi Feb 17, 2005 9:40 pm
Localitate: Ro/Bacau
Contact:

Clar ?

Mesajde SHORTY-X » Sâm Apr 09, 2005 8:36 pm

-


Avatar utilizator
vectorialpx
Senior Member
Mesaje: 4832
Membru din: Mar Mar 01, 2005 9:48 am
Localitate: Bucuresti
Contact:

esti un geniu !

Mesajde vectorialpx » Lun Apr 11, 2005 10:04 am


bld
Senior Member
Mesaje: 284
Membru din: Mie Sep 01, 2004 10:30 pm
Localitate: Alaska

Mesajde bld » Vin Apr 15, 2005 9:49 pm

Nu reusesc nicicum sa redimensionez imaginea si sa o afisez redimensionata...
Imaginea este culeasa dintr-un form si folosesc metoda post.
[php]<form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" class="input-upload" />
<input type="file" name="poza_stire" />
<input type="submit" value="Trimite" name="submit" />
</form>[/php]
Rog sa ma scoata cineva din ceata...care sunt pasii care trebuie urmati ca nu reusesc nici cum...as vrea ca dupa ce fac upload la imagine sa pastrez widthn-ul si height-ul imaginii in 2 variabile iar printr-un ciclu while sa tot scad aceste valori proportional pana ajung la anumite dimensiuni. Sunt tot felul de functii...m-am documentat...dar nu iese cu absolut nimic...help!
Multumesc

bld
Senior Member
Mesaje: 284
Membru din: Mie Sep 01, 2004 10:30 pm
Localitate: Alaska

Mesajde bld » Sâm Apr 16, 2005 8:45 pm

:?:

johnutz
Senior Member
Mesaje: 956
Membru din: Mar Iul 20, 2004 9:23 am
Localitate: Între scaun şi tastatură

Mesajde johnutz » Sâm Apr 16, 2005 9:26 pm

Pai..
In scriptul care proceseaza upload-ul pui poza cu move_uploaded_file() intr-un director. Afli dimensiunile si tipul imaginii si le bagi intr-un tabel, imprenuna cu numele fisierului, descriere si ce mai vrei tu.
Thumbail-urile le afisezi cum a explicat SHORTY-X, adica generate dinamic.

Ar mai fi varianta sa generezi thumb. de la inceput, si sa ai 2 directoare: full_size si thumbails.
Adica sa citesti imaginea: imagecreatefromxxx($_FILES['userfile']['tmp_name']), unde xxx=jpeg,gif.etc.
Apoi o redimesionezi si o scrii in fisierul thumbail: imagejpeg($image, $fisier_thumb)

In orice caz indicatiile lui SHORTY-X sunt demne de luat in seama, iclusiv si faza cu inspirarea de la albumul ala.

bld
Senior Member
Mesaje: 284
Membru din: Mie Sep 01, 2004 10:30 pm
Localitate: Alaska

Mesajde bld » Dum Apr 17, 2005 4:56 pm

[php]
$img = $HTTP_POST_VARS['poza_stire'];
if (!$max_width)
$max_width = 64;
if (!max_height)
$max_height = 64;
$size = GetImageSize($img);
$width = $size[0];
$height = $size[1];
$x = $max_width / $width;
$y = $max_height / $height;
if (($width <= $max_width) && ($height <= $max_height))
{
$tn_width = $width;
$tn_height = $height;
}
else if (($x * $height) < $max_height)
{
$tn_height = ceil($x * $height);
$tn_width = $max_width;
}
else
{
$tn_width = ceil($y * $width);
$tn_height = $max_height;
}
$src = ImageCreateFromJpeg($img);
$dst = ImageCreate($tn_width , $tn_height);
ImageCopyResized($dst , $src , 0 , 0 ,0 ,0 , $tn_width , $tn_height , $width , $height);
header('Content-type: image/jpeg');
ImageDestroy($src);
ImageDestroy($dst);
[/php]
Redimensionez imaginea pe care o preiau din form si primesc urmatorile erori:
Warning: Division by zero in c:\program files\easyphp1-7\www\filme\objects\addstire.php on line 45

Warning: Division by zero in c:\program files\easyphp1-7\www\filme\objects\addstire.php on line 46

Fatal error: Call to undefined function: imagecreatefromjpeg() in c:\program files\easyphp1-7\www\filme\objects\addstire.php on line 62


Care-i buba?[/php]

johnutz
Senior Member
Mesaje: 956
Membru din: Mar Iul 20, 2004 9:23 am
Localitate: Între scaun şi tastatură

Mesajde johnutz » Dum Apr 17, 2005 6:36 pm


bld
Senior Member
Mesaje: 284
Membru din: Mie Sep 01, 2004 10:30 pm
Localitate: Alaska

Mesajde bld » Dum Apr 17, 2005 9:37 pm


johnutz
Senior Member
Mesaje: 956
Membru din: Mar Iul 20, 2004 9:23 am
Localitate: Între scaun şi tastatură

Mesajde johnutz » Dum Apr 17, 2005 10:57 pm

Division by zero cred ca se face aici: [php]$x = $max_width / $width;
$y = $max_height / $height; [/php] Probabil buba e cu 3 linii mai sus: $size = GetImageSize($img);. Functia asta primeste ca argument numele fisierului; ia trage o privire in manual.

Avatar utilizator
bond
Senior Member
Mesaje: 201
Membru din: Mie Dec 15, 2004 7:00 pm
Localitate: Bucuresti

Mesajde bond » Lun Apr 18, 2005 12:16 pm

Commander Bond

Pirahna
Senior Member
Mesaje: 5985
Membru din: Dum Aug 22, 2004 2:04 am
Localitate: la birou
Contact:

Mesajde Pirahna » Lun Apr 18, 2005 4:58 pm

de ce toata lumea uita de restart ? :D
|

bld
Senior Member
Mesaje: 284
Membru din: Mie Sep 01, 2004 10:30 pm
Localitate: Alaska

Mesajde bld » Lun Apr 18, 2005 9:55 pm

nu stiu...probabil nu gasesc butonul...dar eu l-am gasit...nu uit sa dau restart...si tot nu merge! :evil:

bld
Senior Member
Mesaje: 284
Membru din: Mie Sep 01, 2004 10:30 pm
Localitate: Alaska

Mesajde bld » Joi Apr 21, 2005 1:22 am

in fine...nu-mi dau seama care e buba si de ce nu functioneaza...am incercat codul lui shorty...si primesc eroarea: Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-7\www\filme\objects\addstire.php on line 71
&yuml;&Oslash;&yuml;&agrave;JFIF&yuml;
Care este problema? si apropo...cum pot sa mut aceasta imagine in ce folder vreau eu...sub ce denumire vreau eu?

johnutz
Senior Member
Mesaje: 956
Membru din: Mar Iul 20, 2004 9:23 am
Localitate: Între scaun şi tastatură

Mesajde johnutz » Joi Apr 21, 2005 12:04 pm



Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 12 vizitatori