Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wycinek ze zdjęcia nie wyświetla się prawidłowo
Forum PHP.pl > Forum > Przedszkole
alfredo828
  1. Serdecznie witam!
  2. Po raz pierwszy korzystam z tego i jakiegokolwiek forum...
  3.  
  4. Aby wydzielić z oryginalnego zdjęcia jego część, napisałem następujący kod:
  5.  
  6. $oryginal = imagecreatefromjpeg ( 'zdjecie.jpg' );
  7. $nowy = imagecreatetruecolor ( 150, 150 );
  8. imagecopyresized ( $nowy, $oryginal, 0, 0, 450, 450, 150, 150, 150, 150 );
  9. imagejpeg ( $nowy );
  10.  
  11. Komentarz:
  12. $oryginal -> oryginalne zdjęcie z pliku 'zdjecie.jpg' - obecnie 600 x 600 pikseli
  13. $nowy -> nowe zdjęcie, które ma być wycięte z oryginalnego i ma mieć wielkość 150 x 150 pikseli
  14.  
  15. Użyłem funkcji imagecopyresized, a w niej parametrów:
  16. $nowy i $oryginal - jak wyżej
  17. 0, 0 - współrzędne lewego górnego narożnika w nowym zdjęciu
  18. 450, 450 - współrzędne lewego górnego narożnika w oryginalnym zdjęciu -
  19. 150, 150 - szerokość (poziom / pion) nowego zdjęcia
  20. 150, 150 - szerokość (poziom / pion) wyciętego (skopiowanego) fragmentu z oryginalnego zdjęcia.
  21.  
  22. Wydaje mi się, że do tego momentu wszystko działa OK - nic się nie wyświetla, zatem nie ma też komunikatów o jakimś błędzie. Jednakże po wstawieniu ostatniej linijki:
  23. imagejpeg ( $nowy );
  24. pojawia się na ekranie "sieczka" różnych znaków zamiast oczekiwanego fragmentu zdjęcia. Gdzie leży błąd?
peter13135
header("Content-type:image/jpeg"); - dodaj przed imagejpeg
alfredo828
  1. Po wpisaniu
  2.  
  3. header("Content-type:image/jpeg");
  4.  
  5. pojawia się takie ostrzeżenie:
  6.  
  7. Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\ge\rozne\ina\fotos.php:54) in C:\xampp\htdocs\ge\rozne\ina\fotos.php on line 63
  8.  
  9. a zaraz potem mnogość różnych znaków, które określiłem mianem "sieczki".
peter13135
przed funkcją header nie może nic być wysłane do przeglądarki. Sprawdź czy nie masz spacji przed <?php lub masz kodowanie utf z bom (ma być bez bom)
alfredo828
Bardzo dziękuję za podpowiedzi i cierpliwość!
Zmieniłem kodowanie na bez BOM i przy okazji trochę na ten temat poczytałem - dla mnie absolutna nowość.
Jednak i ten zabieg nie spowodował oczekiwanego rezultatu.
Teraz kod wygląda następująco:

<?php
$oryginal = imagecreatefromjpeg('foto_01.JPG');
$nowy = imagecreatetruecolor (150,150);
imagecopyresized ($nowy,$oryginal, 0, 0, 450, 450, 150, 150, 150, 150);
header("Content-type:image/jpeg");
imagejpeg($nowy);
?>

Oczywiście jest to fragment kodu programiku do robienia puzzli 4x4. Cos takiego zrobilem w C# i działa bez zarzutu. Teraz chciałbym to zrobić w PHP - swoimi siłami, ale dalej nie mogę wyciąć fragmentu głównego obrazka. Jeżeli uda mi się wyciąć jeden taki obrazek, to już sobie poradzę z innymi. Taką mam nadzieję...
Nie bardzo rozumiem, jak wyeliminować spację przed <?php - co sugerowałeś. Skoro to część kodu, zawsze jakaś może się przyplątać...
Z góry dziękuję za pomoc.
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.