Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z przezroczystością
Forum PHP.pl > Forum > Przedszkole
MateuszS
Witam, mam do zrobienia znak wodny, mam go w PNG, za pomoca funkcji

  1. #
  2. #$obraz = imagecreatefromgif("5.jpg"); // glowny obrazek jeśli to gif
  3. #
  4. $obrazz = imagecreatefromjpeg($obrazek); // glowny obrazek jeśli to jpeg lub jpg
  5. #
  6. $dodawany = "images/logowatra.png"; // dodawany obrazek
  7. #
  8. $dodany = imagecreatefrompng($dodawany);
  9. #
  10. $x = 25; // współrzędna X nałożenia obrazka
  11. #
  12. $y = 20; // współrzędna Y nałożenia obrazka
  13. #
  14. $alfa = 70; // przezroczystość obrazka dodawanego
  15. #
  16. $polaczony = $name; // nazwa polaczonego obrazka
  17. #
  18. # $obraz = imagecreatefromjpeg("$calasciezka");
  19. #
  20. imagecopymerge($obrazz, $dodany, $x,$y, 0,0, 289,103, $alfa);
  21. #
  22. unlink($obrazek);
  23. imagejpeg($obrazz, $polaczony, 100);
  24. #
  25.  
  26. rename($name, $obrazek);
  27. #
  28.  


go wlepiam na moje jpgowe obrazki. Niestety efekt jest zly


jak widac napis jest na prostokacie bialym, ktorego ma nie byc ;/

prosze o pomoc, pozdrawiam

ps. obrazek png jest dobry
pablo89pl
  1. imagecreatefromjpeg :)

zacznij od tego, png zamiast jpeg smile.gif
Fantazyn
Ja zamiast funkcji
  1. imagecopymerge
stosuję

  1. imagecopy($image, $watermark, 0, 0, 0, 0, $watermark_width, $watermark_height);



Ps. A i nie jestem pewny, ale png musi być chyba 24 bit.
wookieb
http://pl.php.net/imagecopymerge I pierwszy komentarz.
CyberDuck_
Kombinujecie pod gorke.
Troche photoshopa, 5 min czasu i pozbadz sie
tla i bedzie po problemie.
A zeby nie bylo to zobacz :
http://www.bluelan.pl/przyklad_gd/
Laczone obrazki to :
http://www.bluelan.pl/przyklad_gd/logowatra.gif
http://www.bluelan.pl/przyklad_gd/5.jpg
wookieb
Nie pod górke tylko trzeba nauczyć się korzystać z GD i tyle. A jak przeczyta komentarz to będzie działało.
Właśnie używanie photoshopa jest pod górke.
MateuszS
Cytat
  1. [url=\"./Pobierz-Plik-158184.html\"]pobierz[/url], plaintext
    1. imagecreatefromjpeg :)
    [PHP] pobierz, plaintext
  2. zacznij od tego, png zamiast jpeg :)<!--QuoteEnd--></div><!--QuoteEEnd-->
  3.  
  4. Musialbym uzyc najpierw konwertera z jpeg na png z poziomu php. Jest jakas funkcja GD ktora to umozliwia?
  5.  
  6.  
  7.  
  8. Wookieb
  9.  
  10. jak
  11. [php]
  12. function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){
  13. $opacity=$pct;
  14. // getting the watermark width
  15. $w = imagesx($src_im);
  16. // getting the watermark height
  17. $h = imagesy($src_im);
  18.  
  19. // creating a cut resource
  20. $cut = imagecreatetruecolor($src_w, $src_h);
  21. // copying that section of the background to the cut
  22. imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
  23. // inverting the opacity
  24. $opacity = 100 - $opacity;
  25.  
  26. // placing the watermark now
  27. imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);
  28. imagecopymerge($dst_im, $cut, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $opacity);
  29. }


Moze mi pomoc?
CyberDuck_
Wiesz ile mi calosc zajela ? doslownie 5 min z wrzuceniem
na serwer jako przyklad ... Trzeba cos wiecej ?
  1. <?php
  2.  
  3. #$obraz = imagecreatefromgif("5.jpg"); // glowny obrazek jeśli to gif
  4. $obraz = imagecreatefromjpeg("5.jpg"); // glowny obrazek jeśli to jpeg lub jpg
  5. $dodawany = "logowatra.gif"; // dodawany obrazek
  6. $dodany = imagecreatefromgif($dodawany);
  7. $x = 50; // współrzędna X nałożenia obrazka
  8. $y = 45; // współrzędna Y nałożenia obrazka
  9. # $size[2] - typ pliku
  10. $alfa = 60; // przezroczystość obrazka dodawanego
  11. $polaczony = "nowy.jpg"; // nazwa polaczonego obrazka
  12. # $obraz = imagecreatefromjpeg("$calasciezka");
  13. @imagecopymerge($obraz, $dodany, $x,$y, 0,0, 289,102, $alfa);
  14. @imagejpeg($obraz, $polaczony, 100);
  15.  
  16. echo "<img src=\"$polaczony\">";
  17.  
  18. ?>


Obrazek zapisalem jako gif.
I napisze to co w innym temacie :
1500 postow przed moim i czytuje tylko madrowanie sie ...
Umiesz lepiej to podaj przyklad tak zeby dzialalo, a taki robaczek
jak ja to zrobil i to odrazu w pierwszym poscie.
wookieb
Cytat(MateuszScirka @ 10.09.2009, 18:01:46 ) *
Musialbym uzyc najpierw konwertera z jpeg na png z poziomu php. Jest jakas funkcja GD ktora to umozliwia?

A czy nie możesz PO PROSTU PRZECZYTAĆ MANUAL?!

Cytat
Moze mi pomoc?

A Sam sobie umiesz pomoć?


Cytat(CyberDuck_ @ 10.09.2009, 18:12:15 ) *
Wiesz ile mi calosc zajela ? doslownie 5 min z wrzuceniem

Tak. Niech wszystko robią ludzie skoro może to zrobić maszyna i to 100 razy lepiej niż ty. A jak to ma robić automat? To będziesz prosił użytkownika o usuwanie tła? Sorry. Ale twój argument jest totalnie żałosny.
Cytat
I napisze to co w innym temacie :
1500 postow przed moim i czytuje tylko madrowanie sie ...

A ja takie posty widzę też 1500 razy. "W takich chwilach forum działa na mnie jak demotywator" (erix). Zamiast do jasnej cholery POCZYTAĆ. PODAJE LINK to k.... nie. Musi dop..... swoje własne głupoty.

  1. function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct)
  2. {
  3. $opacity=$pct;
  4. $w = imagesx($src_im);
  5. $h = imagesy($src_im);
  6.  
  7. $cut = imagecreatetruecolor($src_w, $src_h);
  8. imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
  9. $opacity = 100 - $opacity;
  10. imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);
  11. imagecopymerge($dst_im, $cut, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $opacity);
  12. }
  13.  
  14. $obraz = imagecreatefromgif("slide.gif");
  15. $dodany = imagecreatefrompng('logowatra.png');
  16.  
  17. $x = 25; // wsp?rz?dna X na?o?enia obrazka
  18. $y = 20; // wsp?rz?dna Y na?o?enia obrazka
  19. $alfa = 70; // przezroczysto?? obrazka dodawanego
  20.  
  21. imagecopymerge_alpha($obraz, $dodany, $x,$y, 0,0, 289,103, $alfa);
  22.  
  23. imagejpeg($obraz, 'CZYTAC_MANUAL.jpg');
  24.  
  25.  


Czemu wy ludzie do cholery nie umiecię się nawet zastosować do JEDNEJ BANALNIE PROSTEJ rzeczy. Podaje link i małą podpowiedź "pierwszy komentarz". Czy to jest tak cholerna trudna czynność TO PRZECZYTAĆ, że wasze leniwe d... nie potrafią tego zrobić? A komentarz CyberDuck_ to przykład największej ignorancji, za który powinno się wywalać z forum.
MateuszS
Ten gif jest marnej jakosci ;/ Wyraznie widac roznice miedzy moim png wrzuconym a gifem.

PS Wookieb po co tyle nerwow? Nie mozna od razu podac gotowego rozwiazania? Po co ktos ma siedziec 2h na rozszyfrowywaniu kodu skoro moze to wytlumaczyc osoba ktora wie o co chodzi? Wtedy wszystko jest jasne i obie strony sa szczesliwe.
erix
Cytat
Nie mozna od razu podac gotowego rozwiazania? Po co ktos ma siedziec 2h na rozszyfrowywaniu kodu

Nie, nie można, bo się wszyscy wtedy rozleniwią. Co to za programista, któremu nawet nie chce się przewinąć nieco strony w manualu?

Cytat
Wtedy wszystko jest jasne i obie strony sa szczesliwe.

A nauka idzie w las, do następnego razu, gdy znowu zaczną się żebry o gotowca. Gdybyś chciał zauważyć, to dział gotowe rozwiązania jest nieco niżej, a m.in. w przedszkolu pomagamy, naprowadzamy, a nie rzucamy gotowcami. Była dyskusja na ten temat, myślenie nie boli i odrobina samodzielności jeszcze nikomu nie zaszkodziła.

Jak przechodzisz przez kurs na prawo jazdy, to po zdaniu egzaminu; w nieznanym mieście tez jeździsz z instruktorem?
MateuszS
Porównanie trafne aczkolwiek nieco inaczej bym to ujął.

Niech ten skrypt/metoda=cofanie pod górkę.
Jeździsz z instruktorem aż się nauczysz, potem już sam. Ja jestem na etapie jazdy z instruktorem na wstecznym pod górkę. Nauczę się tego a już będę taki skrypt pisał sam.
CyberDuck_
Wiesz ten gif robilem na szybko i nie zalezalo mi
mocno na jakosci. Zrobilem go z tego wczesniejszego png
i zarazem troszke podciagnolem bo prawie wcale go nie bylo
widac, a przenikanie mozna sobie ustawic w skrypcie.
Jesli chcesz to tak czy tak bedziesz
musial sobie taki obrazek przygotowac w wysokiej jakosci
i rozdzielczosci czego nie rozumie zupelnie ten czlowiek biggrin.gif :
Cytat
Tak. Niech wszystko robią ludzie skoro może to zrobić maszyna i to 100
razy lepiej niż ty. A jak to ma robić automat? To będziesz prosił
użytkownika o usuwanie tła?
Sorry. Ale twój argument jest totalnie żałosny.

Napisz mi skrypt, ktory zleje dwa w jeden tak zeby nie bylo
widac tla w tym nakladanym, a przybije Ci piatke i przyznam racje.
Taki obrazek tak czy tak trzeba sobie przygotowac wiec nie
rozumiem po co byly te nerwy ?
Zapewniam Cie, ze glowa nie boli przy mysleniu ... testowalem biggrin.gif
Tak wiec nie wuytykaj mi tu ignoranctwem ...
wookieb
Cytat(CyberDuck_ @ 10.09.2009, 21:51:19 ) *
Napisz mi skrypt, ktory zleje dwa w jeden tak zeby nie byl
widac tla w tym nakladanym, a przybije Ci piatke i przyznam racje.

Gdybyś był na tyle inteligentny i tak samo bystry, jak ignorancki to byś zauważył, że ten oryginalny PNG nie miał żadnego tła.
A skrypt który podałem to właśnie czyni ( w tym przypadku) . Miszczu.
erix
Cytat
Jeździsz z instruktorem aż się nauczysz, potem już sam.

Właśnie - podstawy PHP już masz, a co z samodzielnym rozwiązywaniem problemów?

Cytat
Napisz mi skrypt, ktory zleje dwa w jeden tak zeby nie byl

No nie przesadzaj, wystarczy poszukać - znajdziesz dziesiątki stron, na których jest poruszony ten sam problem - zarówno w PHP, jak i w ImageMagick.

W związku z tym, że chyba lepsze bite niż proszone - zamykam. Trochę samodzielności, dostałeś już wystarczająco sporo na tacy.
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.