Witam, korzystam z biblioteki GD do tworzenia miniaturek zdjęc i galerii. Orginalne zdjęcia zmniejszam równiez o podany w kodzie rozmiar.<br>Problem jest z tymi zmniejszanymi zdjeciami...bo po zmniejszeniu obojętnie czy przez funkcje imagecopyresized czy imagecopyresampled zarówno miniaturki jak i orginały są poprostu szare z domieszką zielonego, ktos mogłby pomoc nakierować co moze byc przyczyną i jak temu zaradzić? dodam ze bez zmniejszania zdjec jest ok, ale potrzebuje zmniejszonych...mało tego: miniaturki są zielono szare ale po powiekszeniu normalne zdjecia juz nie są, a jesli chodzi o duze zdjęcia zmniejszane..to dopiero to dodałem ale tez zielono szare;//<br>Kod służący za dodanie zdjęcia do bazy, stworzenie miniaturki i zmniejszenie orginalnego zdjęcia:
<?php
include("dane.php");
// initialization
$result_final = "";
$counter = 0;
// List of our known photo types
$known_photo_types = array( 'image/pjpeg' => 'jpg',
'image/jpeg' => 'jpg',
'image/gif' => 'gif',
'image/bmp' => 'bmp',
'image/x-png' => 'png'
);
// GD Function List
$gd_function_suffix = array( 'image/pjpeg' => 'JPEG',
'image/jpeg' => 'JPEG',
'image/gif' => 'GIF',
'image/bmp' => 'WBMP',
'image/x-png' => 'PNG'
);
$photos_uploaded = $_FILES['plik'];
$photo_captions = $_POST['nazwa'];
$opis = $_POST['opis'];
$kategoria = $_POST['kategoria'];
$miejsce = $_POST['miejsce'];
$data = $_POST['data'];
while( $counter <= count($photos_uploaded) ) {
if($photos_uploaded['size'][$counter] > 0)
{
{
$result_final .= "Plik ".($counter+1)." nie jest zdjęciem.<br />";
}
else
{
if(!empty($_POST['data'][$counter])) {
$data = mysqli_real_escape_string
($dbc,trim($_POST['data'][$counter])); $wyn = mysqli_query($dbc,"SELECT data,id FROM data_zdj WHERE data LIKE '$data'");
if(mysqli_num_rows($wyn) > 0)
{
$id_wlasciwe = mysqli_fetch_array($wyn);
$id_daty = $id_wlasciwe['id'];
}
else
{
$rezultat = mysqli_query($dbc,"INSERT INTO data_zdj(data) VALUES('$data')");
$id_daty = mysqli_insert_id($dbc);
}
}
else
{
$id_daty ='NULL';
}
if(!empty($_POST['miejsce'][$counter])) {
$miejsce = mysqli_real_escape_string
($dbc,trim($_POST['miejsce'][$counter])); $wyn = mysqli_query($dbc,"SELECT miejsce,id FROM miejsce_zdj WHERE miejsce LIKE '$miejsce'");
if(mysqli_num_rows($wyn) > 0)
{
$id_wlasciwe = mysqli_fetch_array($wyn);
$id_miejsca = $id_wlasciwe['id'];
}
else
{
$rezultat = mysqli_query($dbc,"INSERT INTO miejsce_zdj(miejsce) VALUES('$miejsce')");
$id_miejsca = mysqli_insert_id($dbc);
}
}
else
{
$id_miejsca='NULL';
}
if(!empty($_POST['kategoria'][$counter])) {
$kategoria = mysqli_real_escape_string
($dbc,trim($_POST['kategoria'][$counter])); $wyn = mysqli_query($dbc,"SELECT kategoria.nazwa,id FROM kategoria WHERE kategoria.nazwa LIKE '$kategoria'");
if(mysqli_num_rows($wyn) > 0)
{
$id_wlasciwe = mysqli_fetch_array($wyn);
$id_kategorii = $id_wlasciwe['id'];
}
else
{
$rezultat = mysqli_query($dbc,"INSERT INTO kategoria(nazwa) VALUES('$kategoria')");
$id_kategorii = mysqli_insert_id($dbc);
}
}
else
{
$id_kategorii='NULL';
}
if(!empty($_POST['opis'][$counter])) {
$opis = mysqli_real_escape_string
($dbc,trim($_POST['opis'][$counter])); }
else
{
$opis ='NULL';
}
mysqli_query($dbc,"INSERT INTO zdjecie(plik,nazwa,id_kategorii,id_miejsca,id_daty,opis)
VALUES('0', '".addslashes($photo_captions[$counter])."',$id_kategorii,$id_miejsca,$id_daty,'$opis')" ); $new_id = mysqli_insert_id($dbc);
$filetype = $photos_uploaded['type'][$counter];
$extention = $known_photo_types[$filetype];
$filename = $new_id.".".$extention;
mysqli_query
( $dbc,"UPDATE zdjecie SET plik='".addslashes($filename)."' WHERE id='".addslashes($new_id)."'" );
// Store the orignal file
copy($photos_uploaded['tmp_name'][$counter],"../".$images_dir."/".$filename);
// Let's get the Thumbnail size
if($size[0] > $size[1])
{
$thumbnail_width = 119;
$thumbnail_height = (int)(115 * $size[1] / $size[0]);
}
else
{
$thumbnail_width = (int)(141 * $size[0] / $size[1]);
$thumbnail_height = 114;
}
if($size[0] > $size[1])
{
$as = 950;
$bs = (int)(950 * $size[1] / $size[0]);
}
else
{
$as = (int)(630 * $size[0] / $size[1]);
$bs = 630;
}
// Build Thumbnail with GD 1.x.x, you can use the other described methods too
$function_suffix = $gd_function_suffix[$filetype];
$function_to_read = "ImageCreateFrom".$function_suffix;
$function_to_write = "Image".$function_suffix;
// Read the source file
$source_handle = $function_to_read ( "../".$images_dir."/".$filename );
if($source_handle)
{
$cos = ImageCreate ( $as, $bs );
ImageCopyResampled( $cos, $source_handle, 0, 0, 0, 0, $as, $bs, $size[0], $size[1] );
// Let's create an blank image for the thumbnail
$destination_handle = ImageCreate ( $thumbnail_width, $thumbnail_height );
// Now we resize it
ImageCopyResized( $destination_handle, $source_handle, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $size[0], $size[1] );
}
$function_to_write( $cos, "../".$images_dir."/".$filename );
// Let's save the thumbnail
$function_to_write( $destination_handle, "../".$images_dir."/tb_".$filename );
ImageDestroy($destination_handle );
//
$result_final .= "<img src='../".$images_dir. "/tb_".$filename."' /> Dodano ".($counter+1)." zdjęcie.<br />";
}
}
$counter++;
}
// Print Result
<html>
<head>
<title>Photos uploaded</title>
</head>
<body>
$result_final
</body>
</html>
__HTML_END;
?>