php carga imágenes y las comprime. ¿Cómo comprime thinkphp las imágenes?
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> p>
_$ret_code=0;
_
_
$ retArray=_rray('ret_code'=>$ret_code); p>
$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 p>
_f(($ ancho>$maxwidth)_|($alto>$maxheight))
_
_/*
_ $widthratio=$maxwidth/$width;
_$heightratio=$maxheight/$height;
_
_if($widthratio<$heightratio)
_{
_$ratio=$widthratio;
_}
_else
_{ p>
__$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);
_ p>
_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.