![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jak w temacie mam błąd: Obrazek „http://localhost/1/zaliczenie.php” nie może zostać wyświetlony, ponieważ zawiera błędy. przy pisaniu programu php, znak wodny z dwóch obrazków. Jaki błąd/błędy mam w kodzie? CODE <?php header("Content-type: image/jpeg"); $name1 = "Polska.jpg"; $name2 = "stopacta.jpg"; $im1 = imagecreatefromjpeg($name1); $im2 = imagecreatefromjpeg($name2); $dane = getimagesize($name2); $sze = $dane[0]; $wys = $dane[1]; for ($y=0; $y<$wys; $y++) { for ($x=0; $x<$sze; $x++) { $rgb = imagecolorat($im2,$x,$y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $srednia = ($r+$g+$b)/3; if ($srednia<100) { $rgb = imagecolorat($im1,$x,$y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $r_nowe = $r + 40; $g_nowe = $g + 40; $b_nowe = $b + 40; if ($r_nowe>255) $r_nowe=255; if ($g_nowe>255) $g_nowe=255; if ($b_nowe>255) $b_nowe=255; $rgb_nowe = imagecolorallocate($im1, $r_nowe, $g_nowe, $b_nowe); imagesetpixel($im1,$x,$y,$rgb_nowe); }; }; }; imagejpeg($im1); imagedestroy($im1); ?> Pozdrawiam i proszę o szybką pomoc. I jeszcze linki do obrazków które użyłem (mam je w tym samym folderze co pracę):
Ten post edytował slawekp17 27.01.2012, 19:58:46 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 11 Dołączył: 12.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
U mnie działa to podręcznikowo.
Jesteś pewien że nazwy plików są dobre? Zmień w $name1 "P" na małą literę i upewnij się czy pliki są i mają identyczne nazwy. Ten post edytował Lombi 27.01.2012, 20:06:55 -------------------- znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nazwy plików na pewno się zgadzają.
Plik zapisany jako Polska z wielkiej litery. Tylko nie wiem czy dobrze wogole zapisuję plik. Aha i mam komunikat jeszcze w Dreamweaver'e: "Nie można wykryć plików dynamicznie powiązanych, ponieważ nie ma definicji serwisu dla tego dokumentu". A mógłbyś kolego zapisać to w gotowym pliku i mi wysłać? Ten post edytował slawekp17 27.01.2012, 20:24:16 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 11 Dołączył: 12.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wrzuć zaliczenie.php i użyte jpg do jakiegoś zipa i daj link do pobrania.
Ten post edytował Lombi 27.01.2012, 20:27:33 -------------------- znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 11 Dołączył: 12.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mysiu pusiu
![]() Nie wiem jak to się nazywa w Dreamweaver'e, czy UTF-8 bez BOM czy jak w pajączkach itp UTF-8 bez czegoś tam (za cholere nie pamiętam jak to się mądrze nazywa w tych programach) na początku pliku. -------------------- znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
![]() Racja. Odchaczylem tylko "Dołącz sygnaturę Unicode (BOM), jak poradziłeś i działa ![]() Duuuuże dziękuję dla ciebie. Mam tylko jeszcze jedną prośbę, pytanie: Jak ustawić znak wodny na środku obrazka? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 11 Dołączył: 12.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzasz rozmiary fotki i znaku wodnego. Odejmujesz od szerokości fotki szerokość znaku wodnego i dzielisz na dwa. W ten sposób masz parametr x dla znaku wodnego. Analogicznie robisz z wysokością.
Wyssane z palca żebyś zobaczył co i jak:
Ten post edytował Lombi 27.01.2012, 21:10:44 -------------------- znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
//Nie wiem jak Ci dziękować.
//Ale na prawdę ogromne dziękuję. Jeszcze jedna prośba, bo z kolorami mam problem. Chcę żeby te z obrazka 2 (znaku wodnego) były zachowane a po wklejeniu zdjęć na siebie znak wodny był tylko lekko przezroczysty. I jaką funkcją zacząć kod który wcześniej mi wysłałeś? Przepraszam za tak dużo pytań, ale dopiero zaczynam się uczyć php'a. Ten post edytował slawekp17 27.01.2012, 23:12:35 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 11 Dołączył: 12.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Co do intensywności znaku wodnego to np imagecopymerge ma możliwość ustawiania w procentach krycia. Mozna nią zastąpić imagecopy. Więcej info w manualu.
Nie rozumiem o co chodzi w pytaniu: Cytat I jaką funkcją zacząć kod który wcześniej mi wysłałeś?
Ten post edytował Lombi 27.01.2012, 23:28:00 -------------------- znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie chodzi mi w tym pytaniu w którym miejscu wstawić kod?
I czy tylko to co mi wysłałeś, czy też muszę jeszcze coś zmienić / dodać? ![]() Przepraszam na prawdę jeszcze raz, ale programowanie to nie mój konik, a niestety jestem zmuszony to zrobić. ![]() Pomoże ktoś? Chcę aby te zdjęcia były na siebie nałożone ale z lekką przezroczystością tego drugiego i zachowaniem kolorów. Jeszcze raz zamieszczam paczkę z plikami:
Ten post edytował slawekp17 28.01.2012, 11:03:08 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 11 Dołączył: 12.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli nie musisz mieć obowiązkowo znaku wodnego w jpg to ja bym użył pliku png bez tła.
A wtedy nie musisz bawić się obróbką kolorów i można to zrobić tak:
To powinno wystarczyć. MANUAL motyla noga ![]() ![]() Ten post edytował Lombi 28.01.2012, 14:26:56 -------------------- znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
W poleceniu nie ma wymaganych rozszerzeń zdjęć, więc jeśli zmienię chyba nic się nie stanie.
Ogromne kolejne dziękuję dla Ciebie kolego. Pozdrawiam. A zmieniając na png muszę jeszcze zmienić: header("Content-type: image/jpeg, image/png"); ..racja? Ten post edytował slawekp17 28.01.2012, 14:52:07 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 11 Dołączył: 12.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Co według Ciebie to ma na celu?
To określa typ obrazka jaki zwraca skrypt prawda? Wiec jeśli chcesz mieć rezultat jako jpg to zostaw jak jest w innym przypadku zmień na rządany. Ten post edytował Lombi 28.01.2012, 15:04:46 -------------------- znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Aha ok.
Zostawiłem, ale niestety dalej teraz błąd w kodzie wyświetla przy odtwarzaniu pliku. Oczywiście zapisane jest dobrze, chyba. Dodałem na początku i na końcu <?php, ?> i nic. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 11 Dołączył: 12.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jej!! Jak piszesz że wyświetla jakiś błąd to ja mogę Ci tylko odpowiedzieć że nie wiem jak jakąś usterkę naprawić
-------------------- znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
To może zapytam ta czy do tego kodu ostatniego (twojego) muszę coś dopisać dokleić z tego pierwszego mojego?
Czy kod który wysłałeś to już rozwiązanie tematu? A błąd teraz który wyświetla to jak w treści tematu. |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 11 Dołączył: 12.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
To skrypt samowystarczalny
![]() -------------------- znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 27.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
CODE <?php
header("Content-type: image/jpeg"); $image='Polska.jpg'; $watermark='flaga-polska.png'; list($img_width,$img_height)=getimagesize($image); list($wm_width,$wm_height)=getimagesize($watermark); $wm_x_pos=(int)($img_width-$wm_width)/2; $wm_y_pos=(int)($img_height-$wm_height)/2; $img=imagecreatefromjpeg($image); $wm=imagecreatefrompng($watermark); imagecopymerge($img,$wm,$wm_x_pos,$wm_y_pos,0,0,$wm_width,$wm_height,50); imagejpeg($img,null,100); imagedestroy($img); imagedestroy($wm); ?> |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 11 Dołączył: 12.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Aż sprawdziłem. Kod z Twojego ostatniego postu zapisałem i działa. Może znowu masz gdzieś kodowane z BOM. Posprawdzaj to dokładnie.
Natomiast jak już zacząłem to sprawdzać to jest mały problem w tym co zamierzasz osiągnąć. Funkcja imagecopymerge w odróżnieniu od imagecopy ma parametr alphy, ale lekceważy to że png nie miało tła i dodaje sama czarne (człowiek uczy się przez całe życie ![]() Tak więc albo używasz imagecopymerge i masz możliwość ustawienia krycia znaku wognego, albo imagecopy i masz png bez tła jako znak wodny. Można też dodać do znaku wodnego załóżmy w png czarne tło i w sktypcie ustawić aby rgb 0,0,0 było jako kolor transparent. Dodajesz przed imagecopymerge
i masz znak wodny o jakimś bardziej zaawansowanym kształcie niż kwadrat, bez tła z kryciem, w przypadku kodu który podałem dziś o 14:14, 50%. Można się bawić dalej w zależności od tego co jest priorytetem zadania. Ale nie wiem czy to nie przerost formy nad treścią. Ten post edytował Lombi 29.01.2012, 00:31:25 -------------------- znowu pomyliłem dwukropek ze średnikiem i starciłem pół dnia na szukanie błędu :)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 14:35 |