Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795

    [php] dimensioni in byte di immagine

    ciao a tutti.
    il mio codice:
    codice:
    		mysql_select_db($_GET['db']) or die("Selezione del database non riuscita");
    		$tabella=$_GET['tabella'];
    		$id=$_GET['id'];
    		$query="select image from $tabella where id=$id";
    		$result=mysql_query($query) or die("caricamento immagine non riuscito");
    		$oggetto=mysql_fetch_array($result);
    		mysql_close();
    
    		/*header("content-type: image/jpeg\n");
    		header('Pragma: no-cache');
      		header("Content-Transfer-Encoding: binary");
    	    header("Content-length:10240 ");*/
    	 	$tmpimage=imagecreatefromstring($oggetto['image']);
    		if(isset($_GET['size'])){
    		//RIDIMENSIONO CON LE GD
    		$src_width=imagesx($tmpimage);
    		$src_height=imagesy($tmpimage);
    		$ratio=max($src_height,$src_width) / $_GET['size'];
    		$tmp_resized=imagecreatetruecolor($src_width / $ratio,$src_height / $ratio);
    		imagecopyresampled($tmp_resized, $tmpimage, 0, 0, 0, 0,
    		$src_width / $ratio,
    		$src_height / $ratio,
    		$src_width,
    		$src_height);
    		imagejpeg($tmp_resized);
    		imagedestroy($tmp_resized);
    		}else{
    		imagejpeg($tmpimage);
    		}
    		imagedestroy($tmpimage);
    io vorrei sapere le dimensioni in byte delle immagini create con le gd? intendo dire: le dimensioni in byte di imagejpg($tmpimage);
    e
    imagejpeg($tmp_resized);
    tenete conto che $oggetto['image'] è il campo blob.
    grazie, sto impazzendo...
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    questo codice scrive in alto a sx la dimensione in byte dell'immagine:
    codice:
    $immagine="test.jpg";
    $fp=fopen($immagine,"r");
    $handle=fread($fp,filesize($immagine));
    $src_img=imagecreatefromstring ($handle);
    
    $x=400;
    $y=300;
    
    $im=Imagecreatetruecolor($x,$y);
    imagecopyresampled($im,$src_img, 0, 0, 0, 0, $x, $y, imagesx($src_img), imagesy($src_img));
    
    $textcolor = imagecolorallocate($im, 0, 0, 255);
    
    if (1 == 1){ //CONDIZIONE PER AVERE L'IMMAGINE RIDIMENSIONATA OPPURE ORIGINALE
    	ob_start();
    	imagejpeg($im,"",50);
    	$image_data = ob_get_contents();
    	ob_end_clean();
    	$testo=strlen($image_data);
    	imagestring($im, 5, 0, 0, $testo, $textcolor);
    } else {
    	$testo=strlen($handle);
    	$im=$src_img;
    	imagestring($im, 5, 0, 0, $testo, $textcolor);
    }
    header("content-type: image/jpeg");
    imagejpeg($im,"",50);
    imagedestroy($im);

    think simple think ringo

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    Grazie mille. Solo che ho un problema:
    a me sto size serviva per scrivere l'header content-length, di modo che sia la barra di progressione di flash (che carica l'immagine) che quella di ie-firefox sapessero quant'era grande l'immagine in modo da poter aumentare progressivamente (senza l'header non va).
    Il problema è che, se uso questo metodo, posso sapere le dimensioni dell'immagine solo dopo aver chiamato imagejpg()... ma se uso imagejpg() non posso scrivere l'header content-length dopo..
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    usando le funzioni per il controllo dell'output (ob_start e simili) puoi gestire l'output senza inviare niente al browser


    guarda il codice che ho postato, l'output effettivo viene inviato solo alla fine, dopo aver trovato le dimensioni delle immagini...


    think simple think ringo

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    795
    grazie 1000!
    <sfogo> ma porco giuda, leggerlo l'help online ogni tanto! </sfogo>

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.