Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]imagecopyresampled - problem ze zmniejszeniem obrazu
slimboot
post 24.03.2011, 16:25:24
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 14.03.2011

Ostrzeżenie: (0%)
-----


Ten temat zapewne był już poruszny, ale przeglądałem google, zaglądałem do manuala i testowałem te wszystkie podane tam skrypty i u mnie żaden nie działa. Wyskakuje mi błąd:

Cannot modify header information - headers already sent by (output started at c:\usr\krasnal\www\formatowanieobrazka\index.php:8) in c:\usr\krasnal\www\formatowanieobrazka\index.php on line 23
˙Ř˙ŕJFIF˙ţJ÷ŘCl.ÍŁůyŠfoăŠh§ľ˛ęrÉc=ĐűrIlm&3ŰÄňšÁš`ýĄř)ý‹<wq_^Cw ĹşÜMÁ˛šś›Í×yk{o-Ľ–Xoá1IŞEnQâ™â*őřťđ:Î{ôć[‹xm/­IžŢma$Ó¤ű`ś‚éäkin&O>iínĺľÔVŢk{´vY$ÎH˙`ţ řžŃľŢŸcŹO"‡ś’6äŢL‰nň˝Žą–öÓÇΓYˆźŸśy œő‡áävÚËEWöpüń}žtŇín"Ö7Ş7›46ˇZĄš”3kŽÍ{ţŸgćŰZĒZN>šđ§†Ž•ZÚÎ[a§MĎ&œ,őkh H’V˛ż{˜Ú8] žDYŰŔfšŕÝĆł-|wđŢóQ eoyáČN—ŠĎ'ÚŁ´žĘŰ]†O%ÜϡżžŐoĄœ2ââKŚť ...... itd.

linia 23 to to miejsce:
CODE

header('Content-type: image/jpeg');

Nie mam pojędcia co jest nie tak, MĘCZE SIĘ Z TYM JUŻ DRUGI DZIEŃ!

Jeżeli umiesz mi pomóc, to DZIĘKI , bo ja już się cały gotuję

A tak wygląda skrypt:

CODE


$filename = ("obrazek.jpg");


$width = 200;
$height = 200;


header('Content-type: image/jpeg');


list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, null, 100);


Ten post edytował slimboot 24.03.2011, 16:36:30


--------------------
OK-Word.com - Nauka podstawowych slowek z jezyka angielskiego, Zapraszam.

"Głupiec nie wierzy w nic z tego, co nie wynika z jego własnego doświadczenia"

"Na początku stworzył Bóg niebo i ziemię" - inna sprawa, ze człowiek to potem popsuł, ale jeżeli tworzenie wyszło od Boga, to zaiste jestem jego synem:)

Go to the top of the page
+Quote Post
NEO.pl
post 24.03.2011, 17:14:40
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 26.01.2011

Ostrzeżenie: (40%)
XX---


Rozumiem ze pisac potrafisz ale czytac juz nie? -> "Cannot modify header information - headers already sent by". Jestem mocno ciekaw coz takiego robiles z tymi paroma linijkami przez 2 dni. Poza tym: http://pl2.php.net/manual/en/book.outcontrol.php
Go to the top of the page
+Quote Post
slimboot
post 24.03.2011, 20:45:53
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 14.03.2011

Ostrzeżenie: (0%)
-----


No cóż jestem początkującym programistą, dlatego tez pisze post w dziele "przedszkole".

Rozumiem, ze ta linijka z błędem w tłumaczeniu na język polski znaczy: "Nie można zmienić informacje nagłówka - już nagłówki wysyłane przez..."

Ale niestety, nie rozumiem co dokładnie, to oznacza, i co powinienem zrobić, zeby ten skrypt działał, właśnie, dlatego umieściłem tutaj post


--------------------
OK-Word.com - Nauka podstawowych slowek z jezyka angielskiego, Zapraszam.

"Głupiec nie wierzy w nic z tego, co nie wynika z jego własnego doświadczenia"

"Na początku stworzył Bóg niebo i ziemię" - inna sprawa, ze człowiek to potem popsuł, ale jeżeli tworzenie wyszło od Boga, to zaiste jestem jego synem:)

Go to the top of the page
+Quote Post
mat-bi
post 24.03.2011, 20:47:39
Post #4





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

Ostrzeżenie: (0%)
-----


Ojej no:

1. Umieszczasz z samego początku nagłówki
2. Robisz ob_start

Ten post edytował mat-bi 24.03.2011, 20:47:57
Go to the top of the page
+Quote Post
slimboot
post 25.03.2011, 08:23:06
Post #5





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 14.03.2011

Ostrzeżenie: (0%)
-----


No dobra, komunikat o błędzie zniknął, ale nadal wyświetla mi się ciąg znaków i wiem, ze jest to efekt ostatniej linijki w kodzie:

˙Ř˙ŕJFIF˙ţ=CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 1000 ˙ŰC˙ŰC
˙Ŕp–"˙Ä ˙Äľ}!1AQa"q2‘Ą#BąÁRŃđ$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdef.... itd.

Po za tym obraz, chociaż zostaje właściwie pobrany, to jednak nie zostaje sformatowany.

Jak zapisać sformatowany obraz?

Już mam, doszedłem do rozwiązania ! Dla zainteresowanych podaje cały skrypt, moze komuś, to tez pomoże:

Kod
<?php

function callback($buffer)
{
  // replace all the apples with oranges
  return (str_replace("apples", "oranges", $buffer));
}

ob_start("callback");

?>

<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
    <meta name="Description" content="Tu wpisz opis zawarto?ci strony" />
    <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
    <title>Tu wpisz tytuł strony</title>
</head>
<body>
<?
$filename = ("obraz.jpg");


$width = 200;
$height = 200;


header('Content-type: image/jpeg');


list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p,"obrazsformatowany.jpg");







?>
</body>
</html>
<?php

ob_end_flush();

?>


JUż mam ! Doszedłem jakoś do rozwiązania, dla zainteresowanych podaje cały, DZIAŁAJĄCY! skrypt, łącznie z ramami html :


Kod
<?php

function callback($buffer)
{
  // replace all the apples with oranges
  return (str_replace("apples", "oranges", $buffer));
}

ob_start("callback");

?>

<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
    <meta name="Description" content="Tu wpisz opis zawarto?ci strony" />
    <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
    <title>Tu wpisz tytuł strony</title>
</head>
<body>
<?
$filename = ("obraz.jpg");


$width = 200;
$height = 200;


header('Content-type: image/jpeg');


list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p,"obrazsformatowany.jpg");







?>
</body>
</html>
<?php

ob_end_flush();

?>


--------------------
OK-Word.com - Nauka podstawowych slowek z jezyka angielskiego, Zapraszam.

"Głupiec nie wierzy w nic z tego, co nie wynika z jego własnego doświadczenia"

"Na początku stworzył Bóg niebo i ziemię" - inna sprawa, ze człowiek to potem popsuł, ale jeżeli tworzenie wyszło od Boga, to zaiste jestem jego synem:)

Go to the top of the page
+Quote Post
lukaskolista
post 25.03.2011, 08:34:47
Post #6





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


swoja droga czemu uzywasz funkcji ob_...()? Czesto zdarza mi sie zajmowac "obrobka" grafiki w php i nigdy nie widzialem potrzeby ich uzycia (przy najmniej tak pisalem kod, zeby nie bylo)
Go to the top of the page
+Quote Post
slimboot
post 25.03.2011, 17:22:20
Post #7





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 14.03.2011

Ostrzeżenie: (0%)
-----


Cytat(lukaskolista @ 25.03.2011, 08:34:47 ) *
swoja droga czemu uzywasz funkcji ob_...()? Czesto zdarza mi sie zajmowac "obrobka" grafiki w php i nigdy nie widzialem potrzeby ich uzycia (przy najmniej tak pisalem kod, zeby nie bylo)



Właściwie masz racje, dodałem już wcześniej cały skrypt, do strony, bez tej funkcji i działałała bez problemu więc nie zwróciłem na to uwagi, by to było potrzebne, a wpisałem to, ponieważ urzytkownik mat-bi mi coś takiego polecił.

Swoją drogą, szkoda, że na tym forum, nie ma możliwości edytowania odpowiedzi, bo już dawno bym to poprawił.

Dzięki pozdrawiam


--------------------
OK-Word.com - Nauka podstawowych slowek z jezyka angielskiego, Zapraszam.

"Głupiec nie wierzy w nic z tego, co nie wynika z jego własnego doświadczenia"

"Na początku stworzył Bóg niebo i ziemię" - inna sprawa, ze człowiek to potem popsuł, ale jeżeli tworzenie wyszło od Boga, to zaiste jestem jego synem:)

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 21:32