Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

jpeg salvat in mysql la citire nu arata la fel
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
floorin



Data înscrierii: 29/Iun/2006
Mesaje: 183

Trimis: Mar Mar 25, 2008 3:54 pm    Titlul subiectului: jpeg salvat in mysql la citire nu arata la fel  

Poate ca nu e totusi de php avansat dar nu prea am stiut unde sa incadrez postul, am urmatoarea problema: salvez o imagine intr-o tabela mysql cam asa:
addslashes(fread(fopen($_FILES['userfile']['tmp_name'],"rb"),filesize($_FILES['userfile']['tmp_name'])))
apoi o extrag de acolo cu imagecreatefromstring, o redimensionez cu imagecopyresized si apoi o afisez cu
header("Content-type: images/jpeg");
imagejpeg($miniatura);
Dar anumite nuante de culori se pierd, de exemplu galben devine gri. Stie cineva ce se intampla si cum pot evita asta?
Sus  
keepwalking



Data înscrierii: 07/Dec/2006
Mesaje: 77
Locație: In pom

Trimis: Mar Mar 25, 2008 10:31 pm    Titlul subiectului:  

Dc te complici cu Cod: addslashes(fread(fopen($_FILES['userfile']['tmp_name'],"rb"),filesize($_FILES['userfile']['tmp_name'])))

Mai ales addslashes care distruge total stringul adaugand /

Poti folosi pur si simplu
Cod:
file_get_contents($_FILES['userfile']['tmp_name']);


Iar ce fel de tip este campul unde salvezi fisierul ?
Sus  
griffin



Data înscrierii: 07/Dec/2006
Mesaje: 81

Trimis: Mar Mar 25, 2008 11:25 pm    Titlul subiectului:  

nu mai bine salvezi tu fotografia intr-un director si tii in baza de date doar calea catre ea.Cred ca merge mai repede asa si nu mai ai nici problema de care ai scris
Sus  
al3xboya



Data înscrierii: 01/Iun/2006
Mesaje: 11
Locație: Bucuresti

Trimis: Mie Mar 26, 2008 11:51 am    Titlul subiectului:  

keepwalking a scris: Dc te complici cu Cod: addslashes(fread(fopen($_FILES['userfile']['tmp_name'],"rb"),filesize($_FILES['userfile']['tmp_name'])))

Mai ales addslashes care distruge total stringul adaugand /

Poti folosi pur si simplu
Cod:
file_get_contents($_FILES['userfile']['tmp_name']);


Iar ce fel de tip este campul unde salvezi fisierul ?

Fara addslashes sau mysql_real_escape_string, mysql poate sa urle din cauza caracterelor (i.e. ghilimele) ce pot exista in reprezentarea imaginii (ce ajunge in query este ceea ce vezi atunci cand deschizi imaginea cu un editor text).

Recomand sa savlezi intr-un camp de tip BLOB, folosind mysql_real_escape_string, care e un pic mai culta, tinand cont si de charset-ul bazei de date.

Mai poti salva cu base64_encode(file_get_contents()) intr-un camp blob sau text sufificent de mare.

Alt sfat este ca ai putea folosi imagecopyresampled, deoarece produce rezultate un pic mai bune si sa setezi calitatea jpeg-lui creat la calitatea maxima (100), default-ul fiind 75:

Cod: imagejpeg($image_rs, NULL, int_quality)
Sus  
floorin



Data înscrierii: 29/Iun/2006
Mesaje: 183

Trimis: Mie Mar 26, 2008 5:39 pm    Titlul subiectului:  

multumesc tuturor pentru raspuns (chiar daca unii ma impingeau la prostii :wink: ). Am rezolvat, functia cheie este imagecreatetruecolor (in loc de imagecreate). Nu prea am avut ocazia sa lucrez cu imagini si cand a fost singura data nevoie m-am multumit sa iau un script gata facut. Daca citeam documentatia (cum totusi fac de obicei) gaseam:
Citat:
Note: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community