Autor Zpráva
maarlin
Profil
Mám scriptík, který z formuláře vezme soubor(obrázek), uloží ho na server pomocí move_uploaded_file, poté zapíše pár informací o něm do DB a udělá miniaturu, zde je trocha kódu, který je použit:

// Tvorba miniatury
list($width, $height) = getimagesize("../../fotky/0".$posledni_id."_".$_FILES["soubor"]["name" ]);
if ($width >= $height) {
$koef = $width/85;
$n_vyska = ceil ($height/$koef);
$n_sirka = ceil ($width/$koef);
}
if ($height >= $width) {
$koef = $height/85;
$n_sirka = ceil ($width/$koef);
$n_vyska = ceil ($height/$koef);
}
$thumb = imagecreate($n_sirka, $n_vyska);
$zdroj = imagecreatefromjpeg("../../fotky/0".$posledni_id."_".$_FILES["soubor"] ["name"]);
imagecopyresampled($thumb, $zdroj, 0, 0, 0, 0, $n_sirka, $n_vyska, $width, $height);
imagejpeg($thumb, "../../fotky/_th_0".$posledni_id."_".$_FILES["soubor"]["name"], 100);

Presto ze je ve fci imagejpeg nastavena kvalita na 100%, presto maji zmensene obrazku hnusnou kvalitu, ze nekdy ani neni mozne poznat co na obrazku je.
-
Viz příklad:
Originál
Miniatura vytvořená výše uvedeným scriptem
-
Díky za každé možné řešení či objevení chyby.
Trixer
Profil
Hele snad to pude

<?php

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

// Tvorba miniatury

list($width, $height) = getimagesize("1.jpg");

if ($width >= $height) {
$koef = $width/85;
$n_vyska = ceil ($height/$koef);
$n_sirka = ceil ($width/$koef);
}

if ($height >= $width) {
$koef = $height/85;
$n_sirka = ceil ($width/$koef);
$n_vyska = ceil ($height/$koef);

}

$thumb = imagecreatetruecolor($n_sirka, $n_vyska);
$zdroj = imagecreatefromjpeg("1.jpg");
imagecopyresampled($thumb, $zdroj, 0, 0, 0, 0, $n_sirka, $n_vyska, $width, $height);
imagejpeg($thumb, "2.jpg", 100);

?>
WertriK
Profil *
chyba je tady v tomto
imagecreate();

misto teto fce radeji pouzivejte
imagecreatetruecolor();
Trixer
Profil
jj jinak to vykresli jen 255 barev
maarlin
Profil
Aha, diky moc vyzkousim to a mozna se jeste ozvu... ;)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0