Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Obrazek do string-a ? GD
ahold
post
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.05.2009

Ostrzeżenie: (0%)
-----


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

Ten post edytował ahold 19.06.2009, 21:22:23
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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


--------------------
Go to the top of the page
+Quote Post
ahold
post
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.05.2009

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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. ?>


--------------------
Go to the top of the page
+Quote Post
maly_swd
post
Post #5





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


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);

Ten post edytował maly_swd 19.06.2009, 21:52:48


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
ahold
post
Post #6





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.05.2009

Ostrzeżenie: (0%)
-----


WykoRZystałem kod "wookieb". Działa genialnie.
Powód edycji: ortografia
Go to the top of the page
+Quote Post
deejay4net
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.06.2007

Ostrzeżenie: (0%)
-----


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..
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To pokaż kod.


--------------------
Go to the top of the page
+Quote Post
deejay4net
post
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.06.2007

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Może powiedz co ten skrypt ma robić bo to co dałeś to woła o pomstę do nieba.


--------------------
Go to the top of the page
+Quote Post
deejay4net
post
Post #11





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.06.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
wookieb
post
Post #12





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.


--------------------
Go to the top of the page
+Quote Post
deejay4net
post
Post #13





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.06.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 19:58