찾다
백엔드 개발PHP 튜토리얼PHP从0单排(十八)图片处理

PHP从零单排(十八)图片处理

1.打开已经存在的图片

<?phpheader ("Content-type:image/jpeg"); $img=imagecreatefromjpeg("cc.jpg");imagejpeg($img);imagedestroy($img);?>
函数imagecreatefromjpeg()的参数即文件所在路径,返回值是参数所指图片的资源标识符。该函数时通过已有图像新建一个图像,并不是单纯打开原图像本身。如果将图片的后缀名.jpg强制改为.png,即便是使用函数imagecreatefrompng(),也无法打开文件,因为图片本质还是jpg格式的图片。

2.获取图片的相关属性

<?php $img=imagecreatefromjpeg("cc.jpg");$x=imagesx($img);$y=imagesy($img);echo "图片cc.jpg的宽为:<b>$x pixels";echo "<br>";echo "<br>";echo "图片cc.jpg的高为:<b>$y</b> pixels";?>

另外,通过一个不属于GD库的函数getimagesize(),可以取得图片的大小等相关属性,该函数的语法如下:

array getimagesize(string $filename [, array &imageinfo])

<?php $img_info=getimagesize("cc.jpg");for($i=0;$i<4;++$i){	echo $img_info[$i];	echo "<br/>";		}?>
第三个元素是图片的格式,它的取值含义如下所示:

1:表示该图片是GIF格式

2:表示该图片是JPG格式

3:表示该图片是PNG格式

4:表示该图片是SWF格式

5:表示该图片是PSD格式

6:表示该图片是BMP格式

<?php $pic_name="ee.png";$pic_size=getimagesize($pic_name);?><img  src="<?php%20echo%20%24pic_name;%20?>" echo alt="PHP从0单排(十八)图片处理" >>

3.对图片加水印效果

·获取要添加水印的图片的宽、高值

·确定图片大小是否满足水印文字大小

·确定水印效果在图片中的位置

·设定图像的混色模式

·生成水印效果

·释放资源

<?php function makeimagewatermark($image,$pos,$water_text,$font_size,$color){	$font_type="c://WINDOWS//Fonts//SIMYOU.TTF";	if(!empty($image)&& file_exists($image))	{		$img_info=getimagesize($image);		$g_w=$img_info[0];		$g_h=$img_info[1];		switch($img_info[2])		{			case 1:			$img=imagecreatefromgif($image);			break;			case 2:			$img=imagecreatefromjpeg($image);			break;			case 3:			$img=imagecreatefrompng($image);			break;			default:			die("Format Wrong");						}				}	else 	{		die("Not exists!");				}		$temp=imagettfbbox(ceil($font_size*2.5),0,$font_type,$water_text);	$w=$temp[2]-$temp[6];	$h=$temp[3]-$temp[7];	if(($g_w<$w) || ($g_h<$h))	{		echo "Too small!";		return;				}	switch($pos){	case 0:	$pos_x=rand(0,($g_w-$w));	$pos_y=rand(0,($g_h-$h));	break;	case 1:	$pos_x=0;	$pos_y=0;	break;	case 2:	$pos_x=($g_w-$w)/2;	$pos_y=($g_h-$h)/2;	break;	case 3:	$pos_x=$g_w-$w;	$pos_y=$g_h-$h;	break;	default:	$pos_x=rand(0,($g_w-$w));	$pos_y=rand(0,($g_h-$h));	break;		}			imagealphablending($img,true);//设置图像混色模式		if(!empty($color) && (strlen($color)==7)){	$R=hexdec(substr($color,1,2));	$G=hexdec(substr($color,3,2));	$B=hexdec(substr($color,5));		}		else 	{		die("Format wrong!");				}		$text_color=imagecolorallocate($img,$R,$G,$B);				imagettftext($img,$font_size,0,$pos_x,$pos_y,$text_color,$font_type,$water_text);				switch($img_info[2])		{			case 1 :			imagegif($img,$image);			break;			case 2 :			imagejpeg($img,$image);			break;			case 3:			imagepng($img,$image);			break;			default:			die("Formate unSupport!");						}	imagedestroy($img);		}if(isset($_FILES) && !empty($_FILES['userfile'])&& $_FILES['userfile']['size']>0){$uploadfile="./".time()."_".$_FILES['userfile']['name'];if(copy($_FILES['userfile']['tmp_name'],$uploadfile)){    makeimagewatermark($uploadfile,2,"Photo by Mac",16,"#43042A");	echo "<img  src="%5C%22%22.%24uploadfile.%22%5C%22" border='\"0\"' alt="PHP从0单排(十八)图片处理" >";		}else{	echo "uploadWrong!<br>";	}}?><title>19.9.php</title>
选择上传图片:

4.生成已有图片的缩略图

<?php header("Content-type:image/jpeg");$img_name="cc.jpg";$src_img=imagecreatefromjpeg($img_name);$ow=imagesx($src_img);$oh=imagesy($src_img);$nw=round($ow*200.0/$ow);$nh=round($oh*200.0/$oh);$desc_img=imagecreate($nw,$nh);imagecopyresized($desc_img,$src_img,0,0,0,0,$nw,$nh,$ow,$oh);imagejpeg($desc_img);imagedestroy($desc_img);imagedestroy($src_img);?>
第一个和第二个参数分别是目标图像、原图像的标识符,接下来4个参数是目的图像和原图像的复制位置的坐标,最后4个参数是目的图像和原图像的复制区域的宽高。
!!使用函数imagecopyresampled()函数

<?php header("Content-type:image/jpeg");$img_name="cc.jpg";$percent=0.2;$src_img=imagecreatefromjpeg($img_name);$ow=imagesx($src_img);$oh=imagesy($src_img);$nw=$ow*$percent;$nh=$oh*$percent;$desc_img=imagecreatetruecolor($nw,$nh);imagecopyresampled($desc_img,$src_img,0,0,0,0,$nw,$nh,$ow,$oh);imagejpeg($desc_img);imagedestroy($desc_img);imagedestroy($src_img);?>




성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
img文件怎么打开img文件怎么打开Sep 18, 2023 am 09:40 AM

打开img文件的方法有使用虚拟光驱软件打开、使用压缩软件打开和使用专用工具打开。详细介绍:1、使用虚拟光驱软件打开,下载并安装一个虚拟光驱软件,右键单击img文件,选择“打开方式”或“关联程序”,在弹出的对话框中选择安装的虚拟光驱软件,虚拟光驱软件会自动加载img文件,并将其作为虚拟光驱中的光盘映像,双击虚拟光驱中的光盘图标,即可打开img文件并访问其中的内容等等。

华为GT3 Pro和GT4的差异是什么?华为GT3 Pro和GT4的差异是什么?Dec 29, 2023 pm 02:27 PM

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

img文件如何打开img文件如何打开Jul 06, 2023 pm 04:17 PM

img文件打开的方式:1、确认img文件路径;2、使用img文件打开器;3、选择打开方式;4、查看图片;5、保存图片。img文件是一种常用的图像文件格式,通常用于存储图片数据。

修复:截图工具在 Windows 11 中不起作用修复:截图工具在 Windows 11 中不起作用Aug 24, 2023 am 09:48 AM

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

img是什么格式img是什么格式Mar 17, 2023 am 10:33 AM

img是一种文件压缩格式,主要是为了创建软盘的镜像文件,它可以用来压缩整个软盘或整片光盘的内容;使用“.IMG”这个扩展名的文件就是利用这种文件格式来创建的;img文件包括3个基本节点,分别是“Ehfa_HeaderTag”、“Ehfa_File”和“Ehfa_Entry”。

如何免费使用Bing Image Creator如何免费使用Bing Image CreatorFeb 27, 2024 am 11:04 AM

本文将介绍七种利用免费的BingImageCreator获得高质量输出的方法。BingImageCreator(现称为MicrosoftDesigner的ImageCreator)是一个出色的在线人工智能艺术生成器之一。它能根据用户的提示生成高度逼真的视觉效果。提示越具体、清晰和创意,生成的效果也会更出色。BingImageCreator在创建高质量图像方面取得了重大进展。它现在使用Dall-E3培训模式,显示出更高水平的细节和现实主义。然而,它能否始终如一地生成高清结果取决于几个因素,包括快速

如何修复无法连接到iPhone上的App Store错误如何修复无法连接到iPhone上的App Store错误Jul 29, 2023 am 08:22 AM

第1部分:初始故障排除步骤检查苹果的系统状态:在深入研究复杂的解决方案之前,让我们从基础知识开始。问题可能不在于您的设备;苹果的服务器可能会关闭。访问Apple的系统状态页面,查看AppStore是否正常工作。如果有问题,您所能做的就是等待Apple修复它。检查您的互联网连接:确保您拥有稳定的互联网连接,因为“无法连接到AppStore”问题有时可归因于连接不良。尝试在Wi-Fi和移动数据之间切换或重置网络设置(“常规”>“重置”>“重置网络设置”>设置)。更新您的iOS版本:

小米手机image怎么删除小米手机image怎么删除Mar 02, 2024 pm 05:34 PM

小米手机image怎么删除?在小米手机中是可以删除image,但是多数的用户不知道image如何的删除,接下来就是小编为用户带来的小米手机image删除方法教程,感兴趣的用户快来一起看看吧!小米手机image怎么删除1、首先打开小米手机中的【相册】功能;2、然后勾选不需要的图片,点击右下角的【删除】按钮;3、之后点击最顶部的【相册】进入到专区,选择【回收站】;4、接着直接点击下图所示的【清空回收站】;5、最后直接点击【永久删除】即可完成。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.