Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    imagecolorallocate per bgcolor di immagine

    ciao a tutti...
    ho trovato e adattato a mio piacere una funzione per creare le miniature delle immagini... e ho un problema a settare lo sfondo bianco.
    codice:
    function image_createThumb($src, $dest, $maxWidth, $maxHeight, $quality=100) {
    	//var_dump(gd_info());
    
    	if(file_exists($src)  && isset($dest)) {
    
    		// prendo le info dell'immagine
    		list($imgW, $imgH, $imgT) = getImageSize($src);
    
    		// se le dimensioni dell'immagine non superano i limiti la copio
    		if($imgW <= $maxWidth && $imgH <= $maxHeight) {
    			@copy($src, $dest);
    		}
    		else {
    
    			// stabilisco le dimensioni della nuova immagine
    			$srcRatio  = $imgW / $imgH;
    			$destRatio = $maxWidth / $maxHeight;
    			if($destRatio > $srcRatio) {
    				$destH = $maxHeight;
    				$destW = $maxHeight * $srcRatio;
    			}
    			else {
    				$destW = $maxWidth;
    				$destH = $maxWidth / $srcRatio;
    			}
    
    			// creo una nuova immagine e do l'antialiasing
    			$destImage = imageCreateTrueColor($destW, $destH);
    			@imageAntiAlias($destImage, true);
    
    			// le info della destinazione
    			$destInfo = pathInfo($dest);
    			if ($destInfo["extension"] == "gif") {
    				$bg = imagecolorallocate($destImage, 255, 255, 255);
    				//$dest = substr_replace($dest, 'jpg', -3);
    			}
    
    			switch ($imgT) {
    				case 1: //GIF
    					$srcImage = imageCreateFromGif($src);
    					break;
    				case 2: //JPEG
    					$srcImage = imageCreateFromJpeg($src);
    					break;
    				case 3: //PNG
    					$srcImage = imageCreateFromPng($src);
    					break;
    				default:
    					return false;
    					break;
    			}
    
    			imageCopyResampled($destImage, $srcImage, 0, 0, 0, 0, $destW, $destH, $imgW, $imgH);
    
    			// generating image
    			switch ($imgT) {
    				case 1:
    				case 2:
    					imageJpeg($destImage,$dest,$quality);
    					break;
    				case 3:
    					imagePng($destImage,$dest);
    					break;
    			}
    			//system("$convert -quality 80 -antialias -sample $new_width" . "x" . "$new_height -bordercolor black -border $border \"$source\" \"$dest\" 2>&1");
    			return true;
    		}
    	}
    	else {
    		return false;
    	}
    }
    la parte in grassetto è la parte incriminata...
    praticamente voglio rimpicciolire una gif che supera maxWidth e maxHeight, e anche se non sarà animata e che lo sfondo trasparente non sarà + trasparente, vorrei che lo sfondo diventasse bianco... e invece di default è nero...

    come devo modificare la funzione per fare in modo che lo sfondo sia bianco?

    grazie infinite
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  2. #2
    ho risolto...

    è bastato aggiungere
    imagefilledrectangle($destImage, 0, 0, $destW, $destH, $bg);

    ciao!
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  3. #3
    ho un'altro problema...

    modificando la stessa funzione... come posso agire per rimpicciolire i files BMP?
    grazie
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  4. #4
    up... vi prego...
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  5. #5
    ari ari ariup...
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    la funzione imageCopyResampled ridimensiona l'immagine...
    http://it.php.net/imageCopyResampled
    think simple think ringo

  7. #7
    infatti... è quella che ho usato...
    ma io dicevo per i BMP... come faccio a creare un'immagine di riferimento come si fa analogamente con imagecreatefromjpeg?
    non esiste una cosa tipo imagecreatefrombmp?
    :master:
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    non credo le librerie GD supportino i bitmap...
    think simple think ringo

  9. #9
    NON CI CREDO!
    proprio il BMP che è il formato di immagine + semplice non è stato implementato? :master:
    ditemi che non è vero...
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  10. #10
    aiuuuuuuuuuuuuuuuuuuuto!
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.