调整图像大小并从api上传到站点

问题描述 投票:0回答:1

我正在使用此代码将图像从我的应用程序(离子应用程序)上传到我的网站,有时照片尺寸很大,是否有更好的方法来编辑代码以缩小照片?

$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;
    }
}
php api ionic-framework file-upload image-uploading
1个回答
0
投票

它对图像进行大小调整,它将使图像保持相同的质量,但会调整其大小,并在下面的脚本中将图像设置为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;
} 
?>
© www.soinside.com 2019 - 2024. All rights reserved.