Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: miniatury zdjęć
Forum PHP.pl > Forum > Gotowe rozwiązania
Usagi
Witam! Mam taki problem. Robię skalowanie zdjęć i wszytsko mi pieknie działa pod warunkiem, że sam proces skalowania nie jest wywoływany w funkcji. Kod wygląda jak poniżej.
[php:1:fdf1506183]
# Constants
define(IMAGE_BASE, "./gallery/users/" . $user . '/' . $album);
define(MAX_WIDTH, 300);
define(MAX_HEIGHT, 300);

# Get image location
$image_file = str_replace('..', '', $_SERVER['QUERY_STRING']);
$image_path = IMAGE_BASE . "/$photo_name";

# Load image
$img = null;
$ext = strtolower(end(explode('.', $image_path)));
if ($ext == 'jpg' || $ext == 'jpeg') {
$img = @imagecreatefromjpeg($image_path);
} else if ($ext == 'png') {
$img = @imagecreatefrompng($image_path);
# Only if your version of GD includes GIF support
} else if ($ext == 'gif') {
$img = @imagecreatefrompng($image_path);
}

# If an image was successfully loaded, test the image for size
if ($img) {

# Get image size and scale ratio
$width = imagesx($img);
$height = imagesy($img);
$scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);

# If the image is larger than the max shrink it
if ($scale < 1) {
$new_width = floor($scale*$width);
$new_height = floor($scale*$height);

# Create a new temporary image
$tmp_img = imagecreate($new_width, $new_height);

# Copy and resize old image into new image
imagecopyresized($tmp_img, $img, 0, 0, 0, 0,
$new_width, $new_height, $width, $height);
imagedestroy($img);
$img = $tmp_img;
}
}

# Create error image if necessary
if (!$img) {
$img = imagecreate(MAX_WIDTH, MAX_HEIGHT);
imagecolorallocate($img,0,0,0);
$c = imagecolorallocate($img,70,70,70);
imageline($img,0,0,MAX_WIDTH,MAX_HEIGHT,$c2);
imageline($img,MAX_WIDTH,0,0,MAX_HEIGHT,$c2);
}

# Display the image
imagejpeg($img);
[/php:1:fdf1506183]

Co mogę robić źle? Dlaczego jak próbuje to wywołać z funkcją mającą wyświetlać miniaturki zdjęć wraz z opisem, to się wszystko krzaczy?

Z góry dzieki za pomoc

__________
php >> Skrypty
Prosze uzywac znacznika [php]
Seth
DeyV
podaj, jakie błedy sie pojawiaja, oraz zapodaj gdzie jest ten błedny kod.
A jak byś chciała, to poszukam kod funckji reskalującej obrazki.
Usagi
Cytat
˙Ř˙ŕJFIF˙ţ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ˙ŰC    $.' ",#(7),01444'9=82<.342˙ŰC  2!!22222222222222222222222222222222222222222222222222˙Ŕá,"˙Ä ˙Ä&micro;}!

To jest próbka krzaków - przeglądarka wogóle nie rozpoznaje, że to plik graficzny. I właśnie nie wiem, jak to zmienić.
DeyV
szkoda ze nie podałas gdzie mozna zobaczyc ten błędny kod.

Choć myśle, że chodzi tu o to, że chcesz wyświetlać grafikę i tekst za jednym razem. A niestety - tak nie można.
Natomiast można zrobić to tak, że w jedynm pliku tworzymy kod html w którym wstawiasz grafikę mniej wiecej tak
[xml:1:a8dd5e94d1]
text
<img scr="nasz_plik_php_generujacy_grafike.php" border="0" >
text
[/xml:1:a8dd5e94d1]

Jesłi jednak nie chodzi o to, to sorki, i podaje przykład funckji któa działa poprawnie.
http://www.mstudio.nq.pl/php_pl/index.php?...Fimage.func.php jest działąjaca funkcja, a raczej 2 - jedna zoptymalizowana pod GD1.6 a 2 - pod GD 2.0
spenalzo
Cytat
Choć myśle, że chodzi tu o to, że chcesz wyświetlać grafikę i tekst za jednym razem. A niestety - tak nie można.

Można, tylko że wtedy trzeba zapisywać minaturkę do pliku.

[php:1:91ead70335]<?php
// generowanie
imagejpeg($image,"plik.jpg");

echo "<img src="plik.jpg">";
?>[/php:1:91ead70335]
GeoS
Od siebie dodam, ze wypadaloby poinformowac przegladarke, ze to grafika, a nie domyslnie text/html.
Wystarczy dodac jednego headera z odpowiednim typem MIME przed przeslaniem do przegladarki grafiki (jesli jedynym bledem sa krzaki zamiast grafiki).
Usagi
Juz zrobilam, dziekuje za porady. Rzeczywiscie zabraklo mi <IMG SRC...,
na szczescie juz wszystko dziala prawidlowo - przynajmniej w tym zakresie... :/
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.