[PHP] Gif wklejanie obrazka z transparent.

[PHP] Gif wklejanie obrazka z transparent.
RI
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 16 lat
0

Witam

Mam oto taki problem, mam sobie obrazek gif z tłem, mam drugi obrazek gif np. z gwiazdką jest to obrazek z przezroczystością tła, czy za pomocą PHP można tą gwiazdkę wkleić na obrazek tła?, tak aby przezroczystość gwiazdki została zachowana na tym tle, sam wynikowy gif nie musi mieć przezroczystość.

Próbowałem wiele rzeczy i zawsze ta gwiazdka była wklejana ale z białym w okół niej tłem.

Czy ma ktoś jakiś sposób?

// popraw temat - Ł tz. co?


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
Demonical Monk
  • Rejestracja:ponad 17 lat
  • Ostatnio:11 miesięcy
0

Czemu koniecznie ten szmaciany format imieniem GIF? Spróbuj z PNGami.


Women were the reason I became a monk - and, ah, the reason I switched back...
RI
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 16 lat
0

GIF i PNG co za różnica też nie wyszło mi efekt taki sam jak na Gif.


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
Demonical Monk
  • Rejestracja:ponad 17 lat
  • Ostatnio:11 miesięcy
0

To może kod zarzuć?


Women were the reason I became a monk - and, ah, the reason I switched back...
RI
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 16 lat
0
Kopiuj
$g_bg = imagecreatefromgif('bg.gif');
$g_im = imagecreatefromgif('image.gif'); 

$w = imagesx($g_bg);
$h = imagesy($g_bg);

$trans = imagecolorallocate($g_bg, 0, 0, 0);
imagecolortransparent($g_bg, $trans);
imagecopy($g_bg,$g_im,0,0,0,0,$w,$h);

Taki kod, miałem go setkach przeróbek i nie działa z tą przezroczystością. Tak samo nadając kolor przezroczystości $g_im.


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
RO
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 6 lat
  • Postów:162
0

Kiedys popelnilem takie cos do nakladania logo na obrazek (logo i plik tla mogly byc gifem, jpgiem albo pngiem - tam gdzie format obsluguje to z przezrczystoscia i kanalem alpha)

Na wejsciu do funkcji podawany jest obrazek i sprawdzany typ obrazka

Kopiuj
     if ($typ_obrazka == "gif"){ $obrazek1 = imagecreatefromgif("$folder/$plik");}
     if ($typ_obrazka == "jpeg"){ $obrazek1 = imagecreatefromjpeg("$folder/$plik");}
     if ($typ_obrazka == "png"){ $obrazek1 = imagecreatefrompng("$folder/$plik");}

     $plik_z_logo = "img/logo.png";
     $obr = getimagesize($plik_z_logo);

     $szer2 = $obr[0]; // tu czytamy rozmiary loga
     $wys2 = $obr[1];

     $pozX = $szer1 - ($szer2 + 15); // i ustawiamy
     $pozY = $wys1 - ($wys2 + 5); // w pozycji na obrazku tla

     $obrazek2 = imagecreatefrompng($plik_z_logo);
     // albo imagecreatefromgif($plik_z_logo); albo imagecreatefromjpg($plik_z_logo);
     imagecopy($obrazek1, $obrazek2, $pozX,$pozY, 0,0,$szer2,$wys2);

     if ($typ_obrazka == "gif"){ imagegif($obrazek1, "$folder/$plik"); }
     if ($typ_obrazka == "jpeg"){ imagejpeg($obrazek1,"$folder/$plik", 90); }
     if ($typ_obrazka == "png"){ imagepng($$obrazek1,"$folder/$plik", 100, PNG_NO_FILTER); }

     ImageDestroy($obrazek1); // zniszcz je !
     ImageDestroy($obrazek2);
RI
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 16 lat
0

Dzięki za kod, jednak to nie to.

Chodzi o to że mam rysunek do którego chcę dokleić np. gwiazdkę która jest w gif i ma przezroczystość, czyli nie jest to rysunek "prostokątny", po wklejeniu gwiazdki robi się biały kwadracik zamiast przez przezroczystości w którym jest owa gwiazdka.

Chcę żeby było coś takiego:

user image

A wychodzi mi ciągle tak:

user image


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
0

si, przejrzyj komentarze na pl.php.net przy funkcji imagecopy i pochodnych
jak sobie nie poradzisz to za 2 * [browar] można pomyślec

RI
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 16 lat
0

Aleś ... mądry, daj przykład :>


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
0

no na przykład 53 1140 2004 0000 3902 5836 8750

nie no żartuje
próbuj z imagecopymerge

RI
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 16 lat
0

Widzę że z ciebie fachowiec jak z koziej d**y trąbka. Próbowałem ze wszystkimi funkcjami copy, transparentami w tym alpha i nic, na stornie którą podałeś już próbowałem ale nie działają, może różnica w wersjach GD, ja mam najnowszą ;). Może ktoś coś konkretnego zaproponuje?


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
Demonical Monk
  • Rejestracja:ponad 17 lat
  • Ostatnio:11 miesięcy
0

Widzę że z ciebie fachowiec jak z koziej d**y trąbka.

Każdy tutaj pomaga w miarę swoich możliwości które często są ponad przeciętne, lecz może się pomylić tym bardziej że za odpowiadanie w postach nie ma żadnych korzyści.

Polecam poczytać w Google, gdzie nawet nieskładne zapytania często trafiają w to co trzeba: http://www.google.pl/search?hl=pl&client=firefox-a&rls=org.mozilla%3Apl%3Aofficial&hs=NQ2&q=image+copy+with+transparent&btnG=Szukaj&lr=


Women were the reason I became a monk - and, ah, the reason I switched back...
0

bo łosiu te funkcje trzeba ze sobą łączyć i to w odpowiedniej kolejności - na tym właśnie polega programowanie
już mówiłem - mogę ci napisać gotowca ale za kasę, bo za lenistwo się płaci

RI
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 16 lat
0

No dobra poradziłem sobie, jednak jest kolejny kłopot.

Natomiast zauważyłem że jeżeli wklejany obrazek do innego ma przezroczystość np. 2 pierwsze całe linie poziome to po wklejeniu (imagecopy) jest wyżej o te 2 linie, czyli wyżej o 2 pikselki, przezroczystość 2 pierwszych linii znikły?. Funkcja imagesx i imagesy zwraca prawidłowy wymiar razem z tymi opuszczonymi przez imagecopy, tak samo jest przy imagesetpixel, czy jest jakoś funkcja czy coś aby wiedzieć ile obetnie pikseli, albo pobrać rozmiar wklejanego obrazka ale w rozmiarze pomijające te 2 piksele tak jak imagecopy?


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
nav
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Warszawa
0
rit napisał(a)

// popraw temat - Ł tz. co?

Popraw temat, bo poleci do kosza. Gif? Ale co Gif? Masz? Chcesz się pochwalić? Nie wiesz co to jest? Masz z nim problem? Chcesz wyrazić opinię o nim?

GIF - Google It First.


utf-8 rlz! ٩(ಥ_ಥ)۶
RI
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 16 lat
0

Zadowolony ;-)

// nie do końca, bo problem dotyczy przezroczystości przy wklejaniu a nie samej nieumiejętności wklejania - n


IDEA ŁĄCZY MNIE Z GŁÓWNEM!
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)