Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> miniaturki po raz setny
arti1
post 6.02.2004, 19:11:14
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 18.11.2003

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


Problem jest krótki.
Mam panel do dodawania zdjęć i obrazków (formaty jpeg, gif, png, bmp).
Potrzebował bym jakiegoś uniwersalnego skryptu do tworzenia miniturek wszystkich formatów.
Do tej pory korzystałem z czegoś takiego:

[php:1:91744c8110]<?php
if ($plik == "image/pjpeg") {

$fol = "../img/galery"; // folder ze zdjęciami
$prfx = "min_"; // prefix poprzedzający nazwy miniaturek
$i = 0;

$org = imagecreatefromjpeg($fol."/".$plik);
$s_org = imagesx($org);
$w_org = imagesy($org);
$s_min = 100;
if(($w_min = floor(($s_min * $w_org) / $s_org)) > 150) $w_min = 150;
$min = imagecreate($s_min, $w_min);
imagecopyresized($min, $org, 0, 0, 0, 0, $s_min, $w_min, $s_org, $w_org);
imagedestroy($org);
imagejpeg($min, $fol."/".$prfx.$plik, 50);
imagedestroy($min);
}
?>[/php:1:91744c8110]

Z tym, ze ten skryp dzialal tylko dla jpegów. Dla gifów kiedys korzystalem z funkcji [php:1:91744c8110]<?php
createimageformgif
?>[/php:1:91744c8110]
no ale juz ona nie dziala. Co mi doradzicie?
Go to the top of the page
+Quote Post
Ozzy
post 6.02.2004, 21:15:24
Post #2





Grupa: Zarejestrowani
Postów: 204
Pomógł: 0
Dołączył: 26.12.2003
Skąd: Rzeszów

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


[php:1:89ac3be90e]<?php
$img_size = getImageSize($path . $img[1]);

$source_x = $img_size[0];
$source_y = $img_size[1];
$source_type = $img_size[2];

if($source_x < $source_y) {
$dest_x = $n * $source_x/$source_y;
$dest_y = $n;
} else {
$dest_x = $n;
$dest_y = $n * $source_y/$source_x;
}

if(!file_exists($path .'mini/'. $img[1])) {

if($source_type == 1)
$source_id = @ImageCreateFromGIF($path . $img[1]);
elseif($source_type == 2)
$source_id = @ImageCreateFromJPEG($path . $img[1]);
elseif($source_type == 3)
$source_id = @ImageCreateFromPNG($path . $img[1]);

if($source_id) {

$target_id = ImageCreateTrueColor($dest_x, $dest_y);

$target_pic = ImageCopyResampled($target_id, $source_id, 0, 0, 0, 0, $dest_x, $dest_y, $source_x, $source_y);

[2];

...

ImageJpeg($target_id, $path .'mini/'. $img[1], 85);
?>[/php:1:89ac3be90e]

Tyle, że miniaturki tworzone są w jpg.
(to nie jest gotowy skrypt, tylko kawałek kodu, ale pozwoli Ci zobaczyć jak to można zrobić)
Go to the top of the page
+Quote Post
menic
post 7.02.2004, 11:35:54
Post #3





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


[php:1:f9e88466c1]<?php
function thumb( $IMAGE_SOURCE,$THUMB_X,$THUMB_Y,$OUTPUT_FILE )
{


$BACKUP_FILE = $OUTPUT_FILE . "_backup.jpg";
copy( $IMAGE_SOURCE,$BACKUP_FILE );
$IMAGE_PROPERTIES = GetImageSize( $BACKUP_FILE );

if ( !$IMAGE_PROPERTIES[2] == 2 )
{
return( 0 );
}
else
{
switch( $GLOBALS['ext'] )
{
case 'jpg':
$SRC_IMAGE = ImageCreateFromJPEG( $BACKUP_FILE );
break;
case 'jpeg':
$SRC_IMAGE = ImageCreateFromJPEG( $BACKUP_FILE );
break;
case 'png':
$SRC_IMAGE = ImageCreateFromPNG( $BACKUP_FILE );
}

$SRC_X = ImageSX( $SRC_IMAGE );
$SRC_Y = ImageSY( $SRC_IMAGE );
if( ( $THUMB_Y == "0" ) && ( $THUMB_X == "0" ) )
{
return 0 ;
}
elseif( $THUMB_Y == "0" )
{
$SCALEX = $THUMB_X/( $SRC_X-1 );
$THUMB_Y = $SRC_Y*$SCALEX;
}
elseif( $THUMB_X == "0" )
{
$SCALEY = $THUMB_Y/( $SRC_Y-1 );
$THUMB_X = $SRC_X*$SCALEY;
}
$THUMB_X = ( int )( $THUMB_X );
$THUMB_Y = ( int )( $THUMB_Y );
$DEST_IMAGE = imagecreatetruecolor( $THUMB_X, $THUMB_Y );
unlink( $BACKUP_FILE );

if( !imagecopyresized( $DEST_IMAGE, $SRC_IMAGE, 0, 0, 0, 0, $THUMB_X, $THUMB_Y, $SRC_X, $SRC_Y ) )
{
imagedestroy( $SRC_IMAGE );
imagedestroy( $DEST_IMAGE );
return( 0 );
}
else
{
imagedestroy( $SRC_IMAGE );
switch( $GLOBALS['ext'] )
{
case 'jpg':
$Image = ImageJPEG( $DEST_IMAGE, $OUTPUT_FILE, 100 );
break;
case 'jpeg':
$Image = ImageJPEG( $DEST_IMAGE, $OUTPUT_FILE, 100 );
break;
case 'png':
$Image = ImagePNG( $DEST_IMAGE, $OUTPUT_FILE );
}
if ( $Image )
{
imagedestroy( $DEST_IMAGE );
return 1 ;
}
imagedestroy( $DEST_IMAGE );
}
return 0 ;
}

} # end createthumb
?>[/php:1:f9e88466c1]


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
arti1
post 7.02.2004, 13:37:30
Post #4





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 18.11.2003

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


->>menic

jak wywolac ta funkcje? nie che mi dzialac sad.gif


[php:1:edcdaa6e8a]<?php
thumb( "http://www.mojadomena.pl/img/galery/cc011307022004.jpg","0","0","galery/");

?>[/php:1:edcdaa6e8a]

co robie źle?
Go to the top of the page
+Quote Post
Nalfein][WR
post 7.02.2004, 13:59:27
Post #5





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 22.04.2003
Skąd: Żory / K-ce

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


Podajesz "0" i "0" zamiast docelowych wymiarów miniaturki?


--------------------
Gadu-Gadu: 3909164
Go to the top of the page
+Quote Post
menic
post 7.02.2004, 14:24:49
Post #6





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


[php:1:71db699e14]<?php
thumb('plik_do_pomniejszenia.jpg', szerokosc, wysokosc, 'plik_pomniejszony.jpg')
?>[/php:1:71db699e14]szerokosc i wysokosc to wymiary nowej miniaturki


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
arti1
post 7.02.2004, 14:52:48
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 18.11.2003

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


wpisuje:

[php:1:35e6b8835f]<?php
thumb('sr2c-rewers.jpg','150','100','aaa.jpg');

?>[/php:1:35e6b8835f]
i nie dziala

wyskakuja bledy:
[php:1:35e6b8835f]<?php
Warning: imagesx(): supplied argument is not a valid Image resource in .../img/test.php on line 29

Warning: imagesy(): supplied argument is not a valid Image resource in .../img/test.php on line 30

Warning: imagecopyresized(): supplied argument is not a valid Image resource in .../img/test.php on line 51

Warning: imagedestroy(): supplied argument is not a valid Image resource in .../img/test.php on line 53
?>[/php:1:35e6b8835f]
Go to the top of the page
+Quote Post
menic
post 7.02.2004, 16:09:45
Post #8





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


a masz zainstalowaną bibliotekę gd2 questionmark.gif


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
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: 25.06.2025 - 13:15