![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 3.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Muszę wykonać funkcjonalność która pozwoli na kadrowanie obrazów i zapisywanie na komputerze. 1. Nie mogę sobie poradzić z server side. Próbowałem postępować według tego: http://deepliquid.com/content/Jcrop_Implem...ion_Theory.html Niestety bez skutku - całość można zobaczyć na stronie: http://fototapety.fosterprint.pl/node/15 W firebug konsola wyświetla "Image corrupt or truncated". Bardzo proszę o znalezienie przyczyny i w miarę możliwości pokierowanie bo kompletnie nie znam php. 2. Kod php który aktualnie mam jest taki sam jak na stronie deepliquid z linku który podałem wyżej, jedynie ścieżka do pliku jest inna: Kod $targ_w = $targ_h = 150; $jpeg_quality = 90; $src = 'demo_files/flowers.jpg'; $img_r = imagecreatefromjpeg($src); $dst_r = ImageCreateTrueColor( $targ_w, $targ_h ); imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'], $targ_w,$targ_h,$_POST['w'],$_POST['h']); header('Content-type: image/jpeg'); imagejpeg($dst_r, null, $jpeg_quality); I tu się rodzi drugie pytanie: co umieścić zamiast "$src = 'demo_files/flowers.jpg';" żeby automatycznie podstawiać adres tego obrazka który aktualnie kadrujemy? Trzecie pytanie - co zmienić w kodzie, żeby rozdzielczość skadrowanego obrazka nie była sztywno ustawiona, tylko zależna od tego jak ustawiona jest ramka kadrująca (taka jaka powinna być rzeczywista wielkość kadru biorąc pod uwagę rozdzielczość całego obrazka)? Mam nadzieję, że pytania są w miarę zrozumiałe. Bardzo proszę o pomoc. Witam! Zauważyłem, że jak zamienię w kodzie php dwie ostatnie linijki na: Kod // Comment out the header() call // header('Content-type: image/jpeg'); imagejpeg($dst_r, $output_filename, $jpeg_quality); to wyświetla się dziwny ciąg znaków. Próbowałem go zapisać jako jpg ale bez skutku. Jeszcze raz bardzo proszę o pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 587 Pomógł: 190 Dołączył: 5.02.2011 Skąd: 64-800 Ostrzeżenie: (0%) ![]() ![]() |
Na początku skryptu włącz raportowanie błędów
jak masz gdzieś header tak jak w drugim kodzie to pozostaw narazie zakomentowane. Te znaczki dziwne to właśnie obrazek, spróbuj znaleźć błąd wśród tych znaczków, powinien być na początku albo końcu gdzieś jeśli się pokaże. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 3.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź!
Po zastosowaniu error_reporting jest taki błąd: Kod Notice: Undefined variable: output_filename in /users/fosterprint/www/fototapety.fosterprint.pl/sites/all/themes/foster/js/crop.php on line 18 Proszę o pomoc co z tym zrobić. Odnośnie drugiego pytania, mogę prosić o jakąś poradę jak to zrobić? Można na przykład pobrać adres obrazka do zmiennej w js i pobrać go do skryptu php? Jeśli tak, to jak by to mniej więcej wyglądało? PS: Kod mam w tym momencie taki: Kod error_reporting(-1); $targ_w = $targ_h = 150; $jpeg_quality = 90; $src = 'http://fototapety.fosterprint.pl/sites/default/files/shutterstock_9759766.jpg'; $img_r = imagecreatefromjpeg($src); $dst_r = ImageCreateTrueColor( $targ_w, $targ_h ); imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'], $targ_w,$targ_h,$_POST['w'],$_POST['h']); // Comment out the header() call // header('Content-type: image/jpeg'); imagejpeg($dst_r, $output_filename, $jpeg_quality); Proszę o pomoc będę wdzięczny ![]() Edit: Witam ponownie, zmieniłem ostatnią linijkę na: Kod imagejpeg($dst_r,null,$jpeg_quality); Błąd już się nie wyświetla, ale dalej mam tylko ciąg znaków zamiast obrazka ![]() Proszę o pomoc! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 587 Pomógł: 190 Dołączył: 5.02.2011 Skąd: 64-800 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 3.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź!
Odkomentowałem header, niestety wyświetla się tylko miniaturka zastępująca obrazek ![]() Co mogę z tym zrobić? Edit: Zauważyłem jeszcze być może istotną rzecz: po zapisaniu strony jako plik jpg, photoshop poprawnie go otwiera - więc chyba nie jest tak źle. Natomiast już windowsowa przeglądarka obrazów sobie nie radzi ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź czy przed <?php nie masz żadnej spacji/znaku nowej linii itd
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 3.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Dzięki, obraz się wyświetla. Zastanawiam się teraz, dlaczego przeglądarka pokazywała błąd: "Notice: Undefined variable: output_filename" - koniecznie potrzebuję, żeby właśnie ten obraz pobrać na dysk zamiast wyświetlania. Próbowałem coś takiego: Kod imagejpeg($dst_r, 'obraz.jpg', $jpeg_quality); ale niestety nic się nie wyświetla ani nie pobiera - pusta strona. Proszę o pomoc. Edit: Zauważyłem, że pliki się zapisują, ale nie na komputerze tylko na serwerze w folderze w którym umieszczony jest plik php. Proszę o pomoc jak to można naprawić. Przesyłam aktualny kod: Kod <?php error_reporting(-1); $targ_w = $targ_h = 150; $jpeg_quality = 90; $src = 'http://fototapety.fosterprint.pl/sites/default/files/shutterstock_9759766.jpg'; $img_r = imagecreatefromjpeg($src); $dst_r = ImageCreateTrueColor( $_POST['w'],$_POST['h'] ); imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'], $_POST['w'],$_POST['h'],$_POST['w'],$_POST['h']); // Comment out the header() call header('Content-type: image/jpeg'); imagejpeg($dst_r,'obraz1.jpg',$jpeg_quality); ?> Bardzo proszę o pomoc. Edit: Poradziłem sobie - jeszcze raz wielkie dzięki. Poniżej aktualny działający kod. Pozdrawiam! Kod <?php
error_reporting(-1); $targ_w = $targ_h = 150; $jpeg_quality = 90; $src = $_POST['adres']; $img_r = imagecreatefromjpeg($src); $dst_r = ImageCreateTrueColor( $_POST['w'],$_POST['h'] ); imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'], $_POST['w'],$_POST['h'],$_POST['w'],$_POST['h']); header("Content-Transfer-Encoding: binary"); header('Content-Description: File Transfer'); header('Content-Type: image/jpeg'); header('Content-Disposition: attachment; filename=asdf'); imagejpeg($dst_r,'',$jpeg_quality); ?> |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 17:19 |