pobieranie dynamicznie tworzonego obrazka

pyt Q

Artur Muszyński pisze:
Powinno sie też ustawiać Content-Length.
Sęk w tym, że nie chcę nigdzie zapisywać obrazka przed wysłaniem, tylko odpowiednio przetworzony wysłać od razu do użytkownika. Nigdzie w dokumentacji PHP niestety nie spotkałem się z funkcją, która sprawdzałaby rozmiar dynamicznie stworzonego jpg :-) Ireneusz Sawicki pisze:
Da się obejść:
ob_start(); imagejpeg($file); $d = ob_get_contents(); $l = ob_get_length(); ob_end_clean(); header("Content-Type: image/jpeg"); header("Content-Length: $l"); echo $d;
artur

odp A

Da się obejść:
ob_start(); imagejpeg($file); $d = ob_get_contents(); $l = ob_get_length(); ob_end_clean(); header("Content-Type: image/jpeg"); header("Content-Length: $l"); echo $d;
Artur Muszyński pisze:
Czy mi się tylko wydaje, czy to potrzebuje 2x więcej pamięci ?
To: $d = ob_get_contents(); bym wywalił, a zamiast echo $d; dał ob_end_flush();
Pozdr Exe Very Cute

odp A

Witam,
o ile obrazek mniejszych rozmiarów (~250kb) przesłany poprzez:
[--ciach--] header( 'Content-type: image/jpeg' ); header( 'Content-Disposition: attachment; filename=plik.jpg;' ); imagejpeg($file); imagedestroy($file); [--ciach--]
zapisuje się elegancko, o tyle przy większych rozmiarach zapisuje pusty pliczek.
czym to może być spowodowane?
pozdrawiam, Ireneusz Sawicki
moze kwestia pamieci. Dla limitu 8M maksymalny rozmiar obrazka to px x px. I nie ma tu znaczenia ile zaladowany plik ma kilobajtow. Istotna jest jego rozdzielczosc.

odp A

Da się obejść:
ob_start(); imagejpeg($file); $d = ob_get_contents(); $l = ob_get_length(); ob_end_clean(); header("Content-Type: image/jpeg"); header("Content-Length: $l"); echo $d;
artur
Artur Muszyński pisze:
Działa elegancko. Dziękuję za pomoc :-)
pozdrawiam, Ireneusz Sawicki

Dodaj odpowiedź

Tytuł:

Mail: (w celu weryfikacji posta)