Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obrazek do string-a ? GD
Forum PHP.pl > Forum > PHP
ahold
Dobrywieczór!

Mam taki fragment kodu:

imagepng($dest,"$cached_filename.pelny.png");
imagepng($new_img,"$cached_filename.mini.png");

Chcę zastąpić tworzenie zdjęcia, stringiem.

Czy można to w jakikolwiek sposób zamienić na string ?

Nie mogę znaleźć odpowiedniej funkcji.
Próbując printować $dest

zwraca mi
Resource id #4----


A interesuje mnie, normalnie binarny ciąg danych które się tam znajdują.
Potem zakoduję je do base64 i zapiszę jako medium blob do serwera SQL.


Tylko mówię niech mi ktoś przypomni funkcję mówiącą jak zrobić ze "zdjęcia" string, a nie "resurce id".

pozdrawiam
wookieb
Ja bym spróbował tak
  1. <?php
  2. stream_get_contents($f);
  3. ?>
ahold
Witaj,

Warning: stream_get_contents(): supplied resource is not a valid stream resource in xxx

Próba wywołania

print(stream_get_contents($dest));

Dalej, nie pasuje mu resource sad.gif
Proszę nie mów że trzeba będzie dać f.read i ob_get_contents(); :/

Musi być inny sposób.
Chcę kompletnie pominąć zapisywanie na dysk...
wookieb
Udało mi się uczynić coś takiego
  1. <?php
  2. $d=imagecreatefromjpeg('tapeta.jpg');
  3.  
  4. imagejpeg($d);
  5. $con=ob_get_clean();
  6. echo $con;
  7. ?>
maly_swd
a jak by z OB_START()

$im=imagecreatefromjpeg(.....);

ob_start();
imagejpeg($im);
$obrazke=ob_get_contents();
ob_end_clean();


w zmiennej $obrazek mamy to co chcesz//

mozna jeszcze tak "HARDCOROWO":)

$im=imagecreatefromjpeg(.....);
imagejpeg($im, $jakasnazwaunikalna);
$obrazek=file_get_contents($jakasnazwaunikalna);
ahold
WykoRZystałem kod "wookieb". Działa genialnie.
deejay4net
Cytat(ahold @ 20.06.2009, 00:02:31 ) *
Wykożystałem kod "wookieb". Działa genialnie.

no nie wiem wychodzi mi rozmiar o jakieś 8 - 9 razy mniejszy niz otrzymuje..
wookieb
To pokaż kod.
deejay4net
Cytat(wookieb @ 25.07.2009, 17:24:18 ) *
To pokaż kod.


Ogólnie kod który zwraca coś po wywołaniu imagejpeg nic mi nie daje bo wywołanie u mnie tej funkcji
powoduje pobieranie obrazu (tak mam ustawione nagłówki )
  1. <?php
  2. @header("Content-type: {$mime}");
  3.                @header("Content-Disposition: attachment; filename=\"{$filename} (Wygenerowane przez {$settings['service_name']}) Quality {$q}.{$extension}\"");
  4.  
  5.  
  6.  
  7.                ob_start();
  8.                imagejpeg( $newImage , null , $quality );
  9.                //$obret = ob_get_contents();
  10.                
  11.                
  12.                $newSize = ob_get_clean();
  13.      //  W tym miejscu można to uzyskać a to już nic mi daje bo
  14.      //  przed wywołaniem pobierania muszę znać nazwę..
  15. ?>
wookieb
Może powiedz co ten skrypt ma robić bo to co dałeś to woła o pomstę do nieba.
deejay4net
jaką pomstę ;D

Skrypt otrzymuje grafikę a następnie ją zmniejsza.. lecz nie tylko o szerokość tylko o jakość..
a odbyć ma się to tak.. że jeśli otrzymany plik nadal ma wielkość np powyżej 1MB to wtedy jakość jest odejmowana.
jeśli najmniejszej jakości dalej jest za duży dopiero zmniejszany jest rozmiar i znowu sprawdzana jest wielkość..
Obrabiam tutaj obrazy powyżej 3000 pixeli szerokości.

A ten fragment to nagłówki które pozwalają mi wywołać pobieranie grafiki zamiast jest wyświetlenie.. te komentarze i ob to wasze sugestie
wookieb
Najpierw zacznij od zmniejszenia obrazka do pewnych maksymalnych rozmiarów a potem o jakość.

No i rób to w pętli while. Zapisuj plik na dysku i sprawdzaj jego rozmiar
http://pl.php.net/filesize ale pamiętaj o stosowaniu http://pl.php.net/manual/pl/function.clearstatcache.php pomiędzy filesize.
deejay4net
Cytat(wookieb @ 25.07.2009, 18:41:03 ) *
Najpierw zacznij od zmniejszenia obrazka do pewnych maksymalnych rozmiarów a potem o jakość.

No i rób to w pętli while. Zapisuj plik na dysku i sprawdzaj jego rozmiar
http://pl.php.net/filesize ale pamiętaj o stosowaniu http://pl.php.net/manual/pl/function.clearstatcache.php pomiędzy filesize.


Rozwiązanie fajne ale do zastosowania dla samego siebie. Po wrzuceniu na serwer
przyjmijmy że 100 osób w tym samym czasie wykona taką akcję.. zapisuje zdjęcie.. odczytuje i tak w kółko, przy nie których obrazach możliwe nawet kilka razy.. kiepsko to widzę smile.gif
no nic thx za pomoc, nie zamykajcie tematu jak już wymyślę to napiszę smile.gif (chwilowo robię co innego) aaevil.gif

pzdr
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.