Red de conocimiento informático - Aprendizaje de programación - php carga imágenes y las comprime. ¿Cómo comprime thinkphp las imágenes?

php carga imágenes y las comprime. ¿Cómo comprime thinkphp las imágenes?

php imágenes comprimidas

Por ejemplo (¿qué?) Hay imágenes de diferentes tamaños arriba -------- La expresión del lenguaje carece del tema y es ambigua, lo que hace imposible de entender.

¿En el servidor? ¿Sobre el cliente? ¿Qué entorno de software específico?

"Hay imágenes de diferentes tamaños". Las imágenes existentes generalmente están comprimidas y JPEG tiene aún más pérdidas. PHP puede reprocesar imágenes, pero la calidad de la imagen y el tamaño de almacenamiento no pueden ser ambos. Si la calidad de la imagen es buena, el almacenamiento será grande. Si el almacenamiento es pequeño, la calidad de la imagen será deficiente. Debe procesarla de acuerdo con su propia imagen. requisitos de calidad. ¿Cómo realiza thinkphp la compresión de imágenes?

Al cargar imágenes, primero verifique qué tan grande es la imagen. En términos generales, el tamaño de la imagen de la diapositiva de navegación no debe exceder los 100 k y la imagen del producto no debe exceder los 20 k. Esta carga aún es relativamente lenta. Si usa ajax, el método de carga puede desplazarse, cargar, etc., pero no es muy amigable para las arañas que rastrean la página.

En cuanto al uso de tp para comprimir imágenes, solo puede cambiar el tamaño de la imagen al tamaño que desee. Este tamaño es el tamaño utilizado en el formato de la página web. Una vez cargada la página, debe reemplazarla. la imagen original equivale a cargarla nuevamente. Es mejor realizar una carga continua ajax. Las imágenes cargadas en el sitio web PHP se comprimirán automáticamente. ¿Cómo programarlo? Por favor, dame un consejo.

Aquí se utilizarán tres archivos:

: Conectarse a la base de datos

.

test_: ejecutar sentencia SQL

upload_: subir imágenes y comprimirlas

Los códigos para estos tres archivos son los siguientes:

Conectarse a la base de datos :

Test_: Ejecutar sentencias SQL

upload_: Subir imágenes y archivos comprimidos

Los códigos para los tres archivos son los siguientes:

Conéctese a la base de datos:

Tres Los archivos son los siguientes. >

$db_host='';

$db_user='';

$db_psw='';

$db_name='';

$db_port='';

$sqlconn=new_ysqli($db_host,$db_user,$db_psw,$db_name);

$q="set_ames_tf8;";

$resultado=$sqlconn->query($q);

if(mysqli_connect_errno( ))_

_rintf("Connect_ailed:%s/n",_ysqli_connect_error());

_xit();

} >

Por supuesto, también puedes usar algunos clase de base de datos de encapsulación.

Ejecutar sentencia SQL: test_

require("");

require("upload_");

$real_img=$uploadfile;

$small_img=$uploadfile_resize;

$insert_sql="insert_nto_mg(real_img,small_img)_alues(?,?,?) " ;

$resultado=$sqlconn->_repare($insert_sql);

$resultado->_ind_param("ss",$real_img,$small_img);

$result->_ xecute();

Subir imágenes y comprimirlas: upload_

// Establecer el guardado del archivo directorio

$uploaddir="upfiles/";

$ type=array("jpg", "gif", "bmp", "jpeg", "png");

p>

/ Obtener función de sufijo de archivo

function_ileext($filename)

{

_eturn_ubstr(strrchr( $filename, '.') ,1 );

}

// Generar función de nombre de archivo aleatorio

function_andom($length)

{

$hash='CR-';

$chars=' ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';

$max=_trlen($chars)-1;

_t_srand( (double)microtime()* 1000000);

_or($i=0;$i<$length;$i++)

_

_$ hash.=$chars[mt_rand(0,$max)];

_

_eturn$hash;

} nombre' ])),$tipo ))

{

$text=implode(",",$tipo);

$ret_code=3;// Tipo de archivo incorrecto

$page_result=$text;

$retArray=_ rray('ret_code'=>$ret_code,'page_result'=>$page_result);

$retJson =_son_encode($retArray);

_cho$retJson;

_eturn;

}

/El nombre de archivo del archivo de destino generado

else

{

$filename=explode("." ,$_FILES['filename']['name' ]);

_o__

_

_$filename[0]=random(10);//establece la longitud del número aleatorio

_$nombre= implosión("." ,$nombre de archivo);

_//$nombre1=$nombre.".Mcncc";

_$uplo

adfile=$uploaddir.$nombre;

_

_hile(file_exists($uploadfile));

_f(move_uploaded_file($_FILES['nombre de archivo'] ['tmp_name'],$uploadfile))

_

_if(is_uploaded_file($_FILES['filename'][' tmp_name']))

_{

_$ret_code=1; //Subida fallida

_}

_lse

_//Subida exitosa p>

_$ret_code=0;

_

_

$ retArray=_rray('ret_code'=>$ret_code);

$retJson=_son_encode($retArray);

echo$retJson;

}

$ uploaddir_resize="upfiles_resize/";

p>

$uploadfile_resize=$uploaddir_resize.$name;

//$pic_width_max=120;

//$pic_height_max=90;

/ / Los comentarios anteriores y los siguientes se pueden usar en combinación para comprimir la imagen de acuerdo con la proporción calculada

$file_type=$_FILES["file name"]['type'];

function_esizeImage( $uploadfile,$maxwidth,$maxheight,$name)

{

//Obtener el tamaño de imagen actual

$width=_magesx($uploadfile);

$height=_magesy($uploadfile);

$i=0.5;

/Generar tamaño de miniatura

_f(($ ancho>$maxwidth)_|($alto>$maxheight))

_

_/*

_ $widthratio=$maxwidth/$width;

_$heightratio=$maxheight/$height;

_

_if($widthratio<$heightratio)

_{

_$ratio=$widthratio;

_}

_else

_{

__$ratio= $alturaratio;

_}

_

_$newwidth=$ancho*$ratio;

_$ newheight=$altura*$ratio;

_*/

_$newwidth=$ancho*$i;

_$newheight=$altura*$ i;

_if(function_exists("imagecopyresampled"))

_{

_$uploaddir_resize=_magecreatetruecolor($ nuevoancho,$nuevaaltura);

__magecopyresampled($uploaddir_resize,$uploadfile,0,0,0,0,$n

ewwidth,$newheight,$width,$height);

_}

_else

_{

_$uploaddir_resize= _magecreate ($newwidth,$newheight);

__magecopyresized($uploaddir_resize,$uploadfile,0,0,0,0,$newwidth,$newheight,$width,$ height);

_}

_

_ImageJpeg($uploaddir_resize,$nombre);

_ImageDestroy($uploaddir_resize);

_

_lse

_

_ImageJpeg($uploadfile,$nombre);

_

}

if($_FILES["filename"]['size'])

{

_f($file_type==")image/pjpeg"||$file_type= ="image/jpg"|$file_type=="image/jpeg")

_

_/$im=_magecreatefromjpeg($_FILES[$upload_input_ name]['tmp_name' ]);

_$im=_magecreatefromjpeg($uploadfile);

_

_

_// $im=_magecreatefromjpeg ($_FILES[$upload_input_name]['tmp_name']);

_$im=_magecreatefromjpeg($uploadfile

_// $im=_magecreatefrompng($_FILES[$); upload_input_name]['tmp_name']);

_$im=_magecreatefromjpeg($uploadfile);

_

_lseif ($file_type=="imagen/ gif")

_

_//$im=_magecreatefromgif($_FILES[$upload_input_name]['tmp_name']);

_$im= _magecreatefromjpeg($uploadfile);

_

_lse//defaultjpg

_

_$im=_magecreatefromjpeg($uploadfile);

_

_f($ im)

_

_ResizeImage($im,$pic_width_max,$pic_height_max,$uploadfile_resize);

_

_ImageDestroy($im);

_

}

Cámbielo según la situación real Información correspondiente en test_.

Gracias por tu ayuda.