How to crop an image at boot time?

I am doing a social networking project where I have the ability to add / edit photos. When the user clicks the button, the image will be uploaded to the database and it will be updated ... is it possible to crop the image before it is saved in the database.

+4
source share
3 answers

just call this function .. with parameter source, destination and size, what you need :)

function cropImage($source,$dest,$whsize) { $size = getimagesize($source); $w = $size[0]; $h = $size[1]; $xratio=$w/$whsize; $yratio=$h/$whsize; if($xratio > $yratio)$multiplier=$xratio; else $multiplier=$yratio; $nw=$w/$multiplier; $nh=$h/$multiplier; switch($size[2]) { case '1': $simg = imagecreatefromgif($source); break; case '2': $simg = imagecreatefromjpeg($source); break; case '3': $simg = imagecreatefrompng($source); break; } $dimg = imagecreatetruecolor($nw, $nh); $wm = $w/$nw; $hm = $h/$nh; $h_height = $nh/2; $w_height = $nw/2; if($w> $h) { $adjusted_width = $w / $hm; $half_width = $adjusted_width / 2; $int_width = $half_width - $w_height; imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h); } elseif(($w <$h) || ($w == $h)) { $adjusted_height = $h / $wm; $half_height = $adjusted_height / 2; $int_height = $half_height - $h_height; imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h); } else { imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h); } $dest=$dest.'jpeg'; imagejpeg($dimg,$dest,100); } 
+5
source

On the client side, I would recommend JCrop .

+3
source

Of course, move the file from the download directory and somewhere to the temp directory, save this location in your session, then display it back and let them trim it before moving it to their production area and paste it into the databases.

+1
source

Source: https://habr.com/ru/post/1315901/


All Articles