搜尋
首頁php教程php手册教你用PHP写生成缩略图代码

源文件,目标文件,目标宽,目标高,是否允许剪裁。 如果目标写入null直接二进制输出。不生成文件。 无 function img2thumb($src_img, $dst_img, $width = 64, $height = 64, $nocut = 0) {/*if(!is_file($src_img)) return false;*/if(!($width*$height)) re

源文件,目标文件,目标宽,目标高,是否允许剪裁。
如果目标写入 null 直接二进制输出。不生成文件。
function img2thumb($src_img, $dst_img, $width = 64, $height = 64, $nocut = 0) {
	/*
	if(!is_file($src_img)) return false;
	*/
	if(!($width*$height)) return false;

	$ext = strtolower(substr(strrchr($src_img, '.'),1));
	if(!$ext) return false;
	$otfunc = 'image' . ($ext == 'jpg' ? 'jpeg' : $ext);
	if(!function_exists($otfunc)) return false;

	$srcinfo = getimagesize($src_img);
	if(!$srcinfo) return false;

	$src_w = $srcinfo[0];
	$src_h = $srcinfo[1];
	$type  = strtolower(substr(image_type_to_extension($srcinfo[2]), 1));
	$openfunc = 'imagecreatefrom' . ($type == 'jpg' ? 'jpeg' : $type);
	if(!function_exists($openfunc)) return false;

	$createfunc = 'imagecreate';
	$buildfunc = 'imagecopyresized';

	$x=$y=0;
	$src_t = $src_w / $src_h;
	if($src_t > $width / $height) {
		$dst_w = $width;
		$dst_h = $width / $src_t;
		$nocut && $y = ($height - $dst_h)/2;
	}
	else {
		$dst_w = $src_t * $height;
		$dst_h = $height;
		$nocut && $x = ($width - $dst_w)/2;
	}

	$src = $openfunc($src_img);
	$dst = $createfunc($nocut ? $width :$dst_w, $nocut ? $height :$dst_h);
	$white = imagecolorallocate($dst, 255, 255, 255);
	$buildfunc($dst, $src, $x, $y, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
    $otfunc($dst, $dst_img);
    imagedestroy($dst);
    imagedestroy($src);
    return true;
}
<?php
// 更新,增加参数 $watermark, 如果这个文件是可用的,将作为水印加在图片上,$wmpct透明度.

function img2thumb($src_img, $dst_img, $width=64, $height=64, $nocut=0, $watermark=null, $wmpct=50) {
	/*
	if(!is_file($src_img)) return false;
	*/
	if(!($width*$height)) return false;

	$ext = strtolower(substr(strrchr($src_img, &#39;.&#39;),1));
	if(!$ext) return false;
	$otfunc = &#39;image&#39; . ($ext == &#39;jpg&#39; ? &#39;jpeg&#39; : $ext);
	if(!function_exists($otfunc)) return false;


	$srcinfo = getimagesize($src_img);
	if(!$srcinfo) return false;

	$src_w = $srcinfo[0];
	$src_h = $srcinfo[1];
	$type  = strtolower(substr(image_type_to_extension($srcinfo[2]), 1));
	$openfunc = &#39;imagecreatefrom&#39; . ($type == &#39;jpg&#39; ? &#39;jpeg&#39; : $type);
	if(!function_exists($openfunc)) return false;

	$wmfunc = &#39;&#39;;
	if($watermark) {
		$wminfo=getimagesize($watermark);
		if($wminfo) {
			$wm_w = $wminfo[0];
			$wm_h = $wminfo[1];
			$wmtype  = strtolower(substr(image_type_to_extension($wminfo[2]), 1));
			$wmfunc = &#39;imagecreatefrom&#39; . ($wmtype == &#39;jpg&#39; ? &#39;jpeg&#39; : $wmtype);
			if(function_exists($wmfunc)) {
			}
		}
	}

	$createfunc = &#39;imagecreate&#39;;
	$buildfunc = &#39;imagecopyresized&#39;;

	$x=$y=0;
	$src_t = $src_w / $src_h;
	if($src_t > $width / $height) {
		$dst_w = $width;
		$dst_h = $width / $src_t;
		$nocut && $y = ($height - $dst_h)/2;
	}
	else {
		$dst_w = $src_t * $height;
		$dst_h = $height;
		$nocut && $x = ($width - $dst_w)/2;
	}

	if(!$dst_img) {
		header ( "Content-type: " . image_type_to_mime_type( IMAGETYPE_JPEG ));
	}

	$src = $openfunc($src_img);
	$dst = $createfunc($nocut ? $width :$dst_w, $nocut ? $height :$dst_h);
	$white = imagecolorallocate($dst, 255, 255, 255);
	$buildfunc($dst, $src, $x, $y, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
	imagedestroy($src);

	// 水印
	if($wmfunc && function_exists($wmfunc)) {
		$wm = $wmfunc($watermark);
		imagecopymergegray($dst, $wm, $x+$dst_w-$wm_w, $y+$dst_h-$wm_h, 0, 0, $wm_w, $wm_h, $wmpct);
		imagedestroy($wm);
	}

	$otfunc($dst, $dst_img);
	imagedestroy($dst);
	return true;
}
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
不再担心下班前被领导叫住开小会,AI助手帮你自动生成会议纪要不再担心下班前被领导叫住开小会,AI助手帮你自动生成会议纪要Sep 04, 2023 pm 11:21 PM

讯飞听见升级会议纪要功能,可以将口语表述直接转化为书面稿,AI能够根据录音总结会议纪要。AI能够帮助您完成会议纪要的撰写工作8月31日,讯飞听见网页端进行了版本升级,新增了PC端实时录音功能,能够利用人工智能智能生成会议纪要。这一功能的推出将大大提高用户在会议后整理内容、跟进重点工作事项的效率。对于经常参加会议的人来说,这个功能无疑是一个非常实用的工具,能够节省大量时间和精力该功能的应用场景主要是PC电脑端录音转文字自动生成会议纪要,旨在为用户提供最优质的服务和最先进的技术,快速提升办公效率的产

如何使用PHP生成可刷新的图片验证码如何使用PHP生成可刷新的图片验证码Sep 13, 2023 am 11:54 AM

如何使用PHP生成可刷新的图片验证码随着互联网的发展,为了防止恶意攻击和机器自动操作现象,很多网站都使用了验证码来进行用户验证。其中一种常见的验证码类型就是图片验证码,通过生成一张包含随机字符的图片,要求用户输入正确的字符才能进行后续操作。本文将介绍如何使用PHP生成可刷新的图片验证码,并提供具体的代码示例。步骤一:创建验证码图片首先,我们需要创建一个用于生

如何使用PHP进行基本的自然语言生成如何使用PHP进行基本的自然语言生成Jun 22, 2023 am 11:05 AM

自然语言生成是一种人工智能技术,它能够将数据转换为自然语言文本。在当今的大数据时代,越来越多的业务需要将数据可视化或呈现给用户,而自然语言生成正是一种非常有效的方法。PHP是一种非常流行的服务器端脚本语言,它可以用于开发Web应用程序。本文将简要介绍如何使用PHP进行基本的自然语言生成。引入自然语言生成库PHP自带的函数库并不包括自然语言生成所需的功能,因此

使用Python中的pyWaffle生成一个华夫饼图使用Python中的pyWaffle生成一个华夫饼图Aug 17, 2023 am 11:49 AM

数据可视化对于高效的信息理解和展示至关重要。在众多可用的图表类型中,华夫饼图以方形瓦片在网格状结构中显示数据的新颖方式。强大的Python模块PyWaffle方便了华夫饼图的开发,类似于许多计算和数据分析方法。在本文中,我们将看看如何使用复杂的Python模块PyWaffle创建华夫饼图。让我们安装PyWafle并看看如何使用它来可视化分类数据。在您的cmd中运行以下命令来安装该库,然后将其导入到您的代码中pipinstallpywaffleExample1的中文翻译为:示例1在这个例子中,我们

如何使用PHP生成带有时间限制的二维码?如何使用PHP生成带有时间限制的二维码?Aug 26, 2023 pm 04:34 PM

如何使用PHP生成带有时间限制的二维码?随着移动支付和电子门票的普及,二维码成为了一种常见的技术。在很多场景中,我们可能需要生成一种带有时间限制的二维码,即使在一定时间后,该二维码也将失效。本文将介绍如何使用PHP生成带有时间限制的二维码,并提供代码示例供参考。安装PHPQRCode库要使用PHP生成二维码,我们需要先安装PHPQRCode库。这个库

word目录生成错乱怎么办word目录生成错乱怎么办Feb 20, 2024 am 08:08 AM

word目录生成错乱怎么办随着科技的发展,电子文档已经成为我们日常工作和学习中不可或缺的一部分。而在编辑电子文档时,尤其是长篇文章或论文中,目录的生成是一个非常重要的步骤。目录能够方便读者查找到文章的内容和结构,提高阅读效率。然而,有时候我们在生成目录的过程中会遇到一些问题,比如目录生成出错,顺序混乱等。那么,如果word目录生成错乱,我们应该如何解决呢?首

如何创建mdf文件如何创建mdf文件Feb 18, 2024 pm 01:36 PM

MDF文件是一种常见的数据库文件格式,它是MicrosoftSQLServer数据库的主要文件之一。在数据库管理系统中,MDF文件用于保存数据库的主要数据,包括表、索引、存储过程等。建立MDF文件是创建数据库的关键步骤之一,下面将介绍一些常见的方法。使用SQLServerManagementStudio(SSMS)SQLServerManag

如何生成在在线答题中的错题本如何生成在在线答题中的错题本Sep 25, 2023 am 10:24 AM

如何生成在线答题的错题本在现如今的信息时代,网上答题已经成为了许多学生和教育工作者的常见任务。而错题一直是学习过程中的难题之一,很多人都希望能够方便地生成在线答题的错题本,以便更好地复习和掌握知识。本文将介绍如何通过编程实现在线答题错题本的生成功能,并提供具体的代码示例。第一步:搭建网页界面生成在线答题错题本需要一个网页界面来显示题目和答案。可以使用HTML

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!