`
dcj3sjt126com
  • 浏览: 1878499 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP生成智能缩略图

    博客分类:
  • PHP
阅读更多

 

<?php
class resizeimage {
	//图片类型
	var $type;

	//实际宽度
	var $width;

	//实际高度
	var $height;

	//改变后的宽度
	var $resize_width;

	//改变后的高度
	var $resize_height;

	//是否裁图
	var $cut;

	//源图象
	var $srcimg;

	//目标图象地址
	var $dstimg;

	//临时创建的图象
	var $im;

	function resizeimage($img, $wid, $hei, $c, $dstpath) {
		$this->srcimg = $img;
		$this->resize_width = $wid;
		$this->resize_height = $hei;
		$this->cut = $c;

		//图片的类型
		$this->type = strtolower ( substr ( strrchr ( $this->srcimg, "." ), 1 ) );

		//初始化图象
		$this->initi_img ();

		//目标图象地址
		$this->dst_img ( $dstpath );

		$this->width = imagesx ( $this->im );
		$this->height = imagesy ( $this->im );

		//生成图象
		$this->newimg ();
		ImageDestroy ( $this->im );
	}

	function newimg() {
		//改变后的图象的比例
		$resize_ratio = ($this->resize_width) / ($this->resize_height);
		//实际图象的比例
		$ratio = ($this->width) / ($this->height);
		if (($this->cut) == "1") //裁图
		{
			if ($ratio >= $resize_ratio) //高度优先
			{
				$newimg = imagecreatetruecolor ( $this->resize_width, $this->resize_height );
				imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, (($this->height) * $resize_ratio), $this->height );
				ImageJpeg ( $newimg, $this->dstimg );
			}
			if ($ratio < $resize_ratio) //宽度优先
			{
				$newimg = imagecreatetruecolor ( $this->resize_width, $this->resize_height );
				imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width) / $resize_ratio) );
				ImageJpeg ( $newimg, $this->dstimg );
			}
		} else //不裁图
		{
			if ($ratio >= $resize_ratio) {
				$newimg = imagecreatetruecolor ( $this->resize_width, ($this->resize_width) / $ratio );
				imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width) / $ratio, $this->width, $this->height );
				ImageJpeg ( $newimg, $this->dstimg );
			}
			if ($ratio < $resize_ratio) {
				$newimg = imagecreatetruecolor ( ($this->resize_height) * $ratio, $this->resize_height );
				imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, ($this->resize_height) * $ratio, $this->resize_height, $this->width, $this->height );
				ImageJpeg ( $newimg, $this->dstimg );
			}
		}
	}

	//初始化图象
	function initi_img() {
		if ($this->type == "jpg") {
			$this->im = imagecreatefromjpeg ( $this->srcimg );
		}
		if ($this->type == "gif") {
			$this->im = imagecreatefromgif ( $this->srcimg );
		}
		if ($this->type == "png") {
			$this->im = imagecreatefrompng ( $this->srcimg );
		}
	}

	//图象目标地址
	function dst_img($dstpath) {
		$full_length = strlen ( $this->srcimg );
		$type_length = strlen ( $this->type );
		$name_length = $full_length - $type_length;
		$name = substr ( $this->srcimg, 0, $name_length - 1 );
		$this->dstimg = $dstpath;

		//echo $this->dstimg;
	}
}
$resizeimage = new resizeimage ( "11.jpg", "200", "150", "1", "17.jpg" );
?>
分享到:
评论

相关推荐

    php 自动缩略图,php智能生成缩略图

    这种技术允许开发者通过编程方式将原图智能地转换为适合网页显示的小尺寸缩略图,从而提高页面加载速度。 在PHP中,实现自动缩略图生成通常涉及以下几个关键知识点: 1. 图像处理库:PHP提供了一些内置的图像处理...

    HTML5 PHP按比例生成图片缩略图并上传.rar

    HTML5 PHP按比例生成图片缩略图并上传,这是采用的HTML5上传图片,并实现了裁切功能,如图所示的效果,用户浏览到一张图片后,虽然预设有图片缩略图的长度和宽度,但在生成缩略图的时候,会智能按照图片的宽高比例来...

    基于PHP的批量生成缩略图的代码源码.zip

    这个“基于PHP的批量生成缩略图的代码源码.zip”文件就包含了实现这一功能的源代码。 批量生成缩略图是一项常见的需求,例如在电子商务网站中显示商品图片,或者在社交媒体平台中预览上传的图片。这个代码库很可能...

    PHP批量生成缩略图的代码

    PHP脚本因其跨平台特性和与HTML网页紧密的集成,成为动态生成图像缩略图的理想选择。本文所介绍的PHP脚本便是一款能够自动创建指定目录下所有JPG图片的缩略图的工具。 首先,让我们分解这段PHP代码的核心要素。代码...

    Image For Homepage1.3首页显示日志缩略图插件 for Wordpress.zip

    下面左边那个图是Image For Homepage 1.0版生成的缩略图,右边那个是Image For Homepage 1.3版生成的缩略图,大家可以比较一下: 3、修正指定比例压缩时,上下裁剪不太合理的bug 在调用image_for_homepage函数时...

    DEDE5.7图集缩略图自动裁剪代码

    该脚本可能包含了各种图像处理算法,如基于比例的裁剪、固定尺寸填充、智能识别等,以确保缩略图的质量。 "不变形"是指在缩略图生成过程中,系统会保持原始图像的比例,避免因强制拉伸或压缩导致的图像失真。这通常...

    PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF

    本文主要介绍如何使用PHP中的Imagick扩展来处理GIF图像,包括裁切、生成缩略图以及添加水印等功能。Imagick是一个功能强大的图像处理库,它可以用来创建和操作图像文件。在PHP中,Imagick通过PHP扩展来提供操作图像...

    [图片动画]在线批量生成缩略图工具(PHP)_remini.rar

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    php图片上传类,支持加水印,生成略缩图

    一个好的缩略图生成工具应具备智能的图片尺寸调整算法,能够保持图片的比例不变,同时根据需要生成不同尺寸的缩略图。这不仅可以帮助节省宝贵的服务器存储空间,还可以加快页面的加载速度,改善用户的浏览体验。本文...

    基于HTML实现图片动画网站_在线批量生成缩略图工具(PHP)_remini(HTML源码+数据集+项目使用说明).rar

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    html+php+百度ocr身份证识别上传返回数据,支持压缩保存缩率图

    6. **压缩保存缩率图**:在处理上传的图片时,为了节省存储空间和提高显示速度,通常会生成缩略图。PHP有多种库(如GD库或Imagick)可以实现图像处理,包括创建缩略图。而压缩保存可能是指将处理后的图片(包括原始...

    PHP之图片上传类实例代码(加了缩略图)

    从提供的文件内容来看,这是一篇关于PHP图片上传以及生成缩略图的教程文章。以下是从标题、描述和部分内容中提炼出的知识点: 1. PHP图片上传功能: - PHP允许用户通过表单上传文件,包括图片。 - 使用`$_FILES`...

    基于PHP的TOPMV顶好影音php智能建站系统源码.zip

    4. **视频处理**:可能包含视频编码、转码、缩略图生成等功能,确保视频能在各种设备上流畅播放。 5. **安全机制**:如用户认证、权限控制、防止SQL注入和XSS攻击等,保护系统和用户数据的安全。 6. **API接口**:...

Global site tag (gtag.js) - Google Analytics