• PHP图片裁剪_图片缩放_PHP生成缩略图


    在制作网页过程中,为了排版整齐美观,对网页中的图片处理成固定大小尺寸的图片,或是要截去图片边角中含有水印的图片,对于图片量多,每天更新大量图,靠人工PS处理是不现实的,那么有没有自动处理图片的程序了!下面介绍的是PHP图片裁剪,缩放功能!

    功能介绍:图片裁剪,图片缩放,把源图通过程序导出给定的尺寸;

    运用范围:生成文章缩略图,图片裁剪,截去图片水印部分

    案例效果:天气预报15天查询 ,(http://tqybw.net)网站中的小图片都是通过PHP代码自动生成的

    图格式支持:image/gif, image/jpeg, image/png.

    函数功能描术:根据自定义的目标图高宽, 按目标图高宽比裁剪、缩放源图.

    function imagecropper($source_path, $target_width, $target_height)
    {
    	$source_info   = getimagesize($source_path);
    	$source_width  = $source_info[0];
    	$source_height = $source_info[1];
    	$source_mime   = $source_info['mime'];
    	$source_ratio  = $source_height / $source_width;
    	$target_ratio  = $target_height / $target_width;
    
    	// 源图过高
    	if ($source_ratio > $target_ratio)
    	{
    		$cropped_width  = $source_width;
    		$cropped_height = $source_width * $target_ratio;
    		$source_x = 0;
    		$source_y = ($source_height - $cropped_height) / 2;
    	}
    	// 源图过宽
    	elseif ($source_ratio < $target_ratio)
    	{
    		$cropped_width  = $source_height / $target_ratio;
    		$cropped_height = $source_height;
    		$source_x = ($source_width - $cropped_width) / 2;
    		$source_y = 0;
    	}
    	// 源图适中
    	else
    	{
    		$cropped_width  = $source_width;
    		$cropped_height = $source_height;
    		$source_x = 0;
    		$source_y = 0;
    	}
    
    	switch ($source_mime)
    	{
    		case 'image/gif':
    			$source_image = imagecreatefromgif($source_path);
    			break;
    
    		case 'image/jpeg':
    			$source_image = imagecreatefromjpeg($source_path);
    			break;
    
    		case 'image/png':
    			$source_image = imagecreatefrompng($source_path);
    			break;
    
    		default:
    			return false;
    			break;
    	}
    
    	$target_image  = imagecreatetruecolor($target_width, $target_height);
    	$cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);
    
    	// 图片裁剪
    	imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height); 
    	// 图片缩放
    	imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height);
    
    	header('Content-Type: image/jpeg');
    	imagejpeg($target_image);
    	imagedestroy($source_image);
    	imagedestroy($target_image);
    	imagedestroy($cropped_image);
    }
    

      举例说明:

    <?php

    //源图片地址,大小为500x400;

    $image='/images/big.jpg';

    //截成100x80的缩略图

    imagecropper($image, 100, 80);

    ?>

    此图片功能经修改可以改成很多实用的PHP图片处理功能!大家理解其中的图片函数后就很容易运用了!

  • 相关阅读:
    odoo service error 更改端口号
    unique 唯一约束
    odoo 注册失败
    odoo 某个字段权限设置
    linux 定时任务
    odoo webside theme
    js 杂记
    vue3入门总结
    vue输出空格
    css等比例缩放图片
  • 原文地址:https://www.cnblogs.com/auto6s/p/3389443.html
Copyright © 2020-2023  润新知