我正在使用此代码将图像从我的应用程序(离子应用程序)上传到我的网站,有时照片尺寸很大,是否有更好的方法来编辑代码以缩小照片?
$imagearray = json_decode($_POST['img']);
foreach($imagearray as $value){
$data = explode(',', $value);
$imagedata = base64_decode($data[1]);
$nam = genRandomString().'.jpeg';
$target_path='../uploads/'.$nam;
file_put_contents($target_path,$imagedata);
if($imgsname=="")
{
$imgsname=$nam;
$imgname=$nam;
}
else
{
$imgsname=$imgsname.','.$nam;
}
}
它对图像进行大小调整,它将使图像保持相同的质量,但会调整其大小,并在下面的脚本中将图像设置为200wx200h,因此可以将其设置为600wx450h。而且它的大小不会很大。
<?php
if(isset($_POST["submit"])) {
if(is_array($_FILES)) {
$file = $_FILES['myImage']['tmp_name'];
$source_properties = getimagesize($file);
$image_type = $source_properties[2];
if( $image_type == IMAGETYPE_JPEG ){
$image_resource_id =
imagecreatefromjpeg($file);
$target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
imagejpeg($target_layer,$_FILES['myImage']['name'] . "_thump.jpg");
} elseif( $image_type == IMAGETYPE_GIF ) {
$image_resource_id = imagecreatefromgif($file);
$target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
imagegif($target_layer,$_FILES['myImage']['name'] . "_thump.gif");
} elseif( $image_type == IMAGETYPE_PNG ) {
$image_resource_id = imagecreatefrompng($file);
$target_layer = fn_resize($image_resource_id,$source_properties[0],$source_properties[1]);
imagepng($target_layer,$_FILES['myImage']['name'] . "_thump.png");
}
}
}
function fn_resize($image_resource_id,$width,$height) {
$target_width =200;
$target_height =200;
$target_layer=imagecreatetruecolor($target_width,$target_height);
imagecopyresampled($target_layer,$image_resource_id,0,0,0,0,$target_width,$target_height, $width,$height);
return $target_layer;
}
?>