 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
floorin
Data înscrierii: 29/Iun/2006
Mesaje: 156
|
| 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: 71
|
| 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: 156
|
| 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 |
|
| |
|