이미지 처리 클래스(개선된 버전)
<?php #封装一个image类 class Image{ private static $info; #图片基本信息 private static $image; #内存中的图片 public function __construct($src){ #判断文件 if(!is_file($src)){ return false; } #如果不是文件,直接返回 //获取图片信息 $info = getimagesize($src); self::$info=array( 'width'=>$info[0], 'height'=>$info[1], 'type'=>image_type_to_extension($info[2],false), 'mime'=>$info['mime'] ); //获取图片信息 $type=self::$info['type']; $fun ="imagecreatefrom{$type}"; self::$image = $fun($src); } /** * @param int $width $height 应该在配置文件中声明使用,可取消参数 * @return 缩略图 图片资源 * 缩略图的形成与使用 */ public function thumb($width ,$height){ //新建镇色彩图片 $image_thumb =imagecreatetruecolor($width ,$height); #获取图片的宽高比 $src_m = self::$info['width'] / self::$info['height']; #源文件空格比 $dst_m = $width / $height; #缩略图宽高比 #源文件图片是 N:1 型的 宽不变, 改变高 if($src_m > $dst_m ){ $cha_width = $width; $cha_height = ceil($width / $src_m) ; }else{ #源文件图片是 1:N 型的 高不变,改变宽 $cha_width = floor($height * $src_m) ; $cha_height = $height ; } #对缩略图的其实位置进行重置 $dst_x = ($width - $cha_width) /2 ; $dst_y = ($height - $cha_height) /2 ; imagecopyresampled($image_thumb ,self::$image , $dst_x , $dst_y ,0 , 0, $cha_width , $cha_height ,self::$info['width'],self::$info['height']); #生成缩略图 self::$image =$image_thumb; // #显示缩略图图片 // self::show(self::$image); #保存缩略图 self::save(self::getNewName()); //销毁图片 imagedestroy($this->image_thumb); #返回缩略图名字 return self::getNewName(); } #水印的生成坐标 private static function setLocal($pos){ #对 pos 参数进行判断 , 指定相应的水印生成坐标 #水印图片在config 文件中记录 $conf['mark'] switch ($pos) { case 1: $x = 0; $y = 0; break ; case 2: default: $x = self::$info['width']-50; $y = self::$info['height']-50; #不该是20 这个定制, 应该改成水印图片的宽高 } return $local=array('x' => $x ,'y'=>$y); } #添加文字水印 public function fontMark($content ,$font_url ,$size,$angle){ #字体颜色 $col = imagecolorallocatealpha(self::$image,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255),20); #获取水印输出位置坐标 $local = self::setLocal(2); imagettftext(self::$image,$size,$angle,$local['x'],$local['y'],$col,$font_url,$content); #显示缩略图图片 self::show(self::$image); #保存文字水印 没有添加保存路径 self::save(self::getNewName()); #返回水印图片的名字 return self::getNewName(); } #添加图片水印 public function imageMark($url ,$alpha){ $info= getimagesize($url); #获取图片信息 $type=image_type_to_extension($info[2],false); $fun = "imagecreatefrom{$type}"; #获取水印输出位置坐标 $local = self::setLocal(2); $water = $fun($url); #水印图片 imagecopymerge(self::$image, $water, $local['x'], $local['y'],0 , 0,$info[0] , $info[1], 30); #销毁图片水印 imagedestroy($water); #显示缩略图图片 self::show(self::$image); #保存图片水印 没有添加保存路径 self::save(self::getNewName()); #返回水印图片的名字 return self::getNewName(); } #生成随机的 图片名字 /** * @return string 返回一个新的名字 * */ private static function getNewName(){ #获取一个时间 $str = time(); #获取随机字符串 $string = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOASDFGHJKZXCVBNM1234567890"; for($i=0 ; $i<6 ; $i++){ $str .= $string[mt_rand(0 , strlen($string)-1)]; } return $str.self::$info['type']; } #在浏览器中输出图片 private static function show(){ header("content-type:".self::$info['mime']); $funs ="image".self::$info['type']; $funs(self::$image); } #把图片保存到硬盘 private static function save($newname){ $funs="image".self::$info['type']; $funs(self::$image,$newname.".".self::$info['type']); #在此处加入配置文件的生成目录 } #销毁图片 public function __destruct(){ imagedestroy(self::$image); } }
위 내용은 내용적인 측면을 포함하여 이미지 처리 클래스(개선된 버전)를 소개한 내용이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











오류의 원인은 urllib3 라이브러리의 예외 유형인 NameResolutionError(self.host,self,e)frome입니다. 이 오류의 원인은 DNS 확인에 실패했기 때문입니다. 해결을 찾을 수 없습니다. 이는 입력한 URL 주소가 정확하지 않거나 DNS 서버를 일시적으로 사용할 수 없기 때문에 발생할 수 있습니다. 이 오류를 해결하는 방법 이 오류를 해결하는 방법은 여러 가지가 있습니다. 입력한 URL 주소가 올바른지 확인하고 액세스할 수 있는지 확인하십시오. DNS 서버를 사용할 수 있는지 확인하십시오. 명령줄에서 "ping" 명령을 사용해 볼 수 있습니다. DNS 서버를 사용할 수 있는지 테스트하려면 프록시 뒤에 있는 경우 호스트 이름 대신 IP 주소를 사용하여 웹사이트에 액세스해 보세요.

이 기사에서는 무료 BingImageCreator를 사용하여 고품질 출력을 얻는 7가지 방법을 소개합니다. BingImageCreator(현재 Microsoft Designer용 ImageCreator로 알려짐)는 훌륭한 온라인 인공 지능 아트 생성기 중 하나입니다. 사용자 프롬프트를 기반으로 매우 사실적인 시각 효과를 생성합니다. 프롬프트가 더 구체적이고 명확하며 창의적일수록 결과는 더 좋아질 것입니다. BingImageCreator는 고품질 이미지 생성에 있어 상당한 진전을 이루었습니다. 이제 Dall-E3 트레이닝 모드를 사용하여 더 높은 수준의 디테일과 현실감을 보여줍니다. 그러나 일관되게 HD 결과를 생성하는 능력은 빠른 속도를 포함한 여러 요인에 따라 달라집니다.

Xiaomi 휴대폰에서 이미지를 삭제하는 방법 Xiaomi 휴대폰에서 이미지를 삭제할 수 있지만 대부분의 사용자는 이미지 삭제 방법을 모릅니다. 다음은 편집자가 가져온 Xiaomi 휴대폰에서 이미지 삭제 방법에 대한 튜토리얼입니다. 와서 우리와 함께 보자! Xiaomi 휴대폰에서 이미지를 삭제하는 방법 1. 먼저 Xiaomi 휴대폰에서 [앨범] 기능을 엽니다. 2. 그런 다음 불필요한 사진을 확인하고 오른쪽 하단에 있는 [삭제] 버튼을 클릭합니다. 상단의 특수 영역에 들어가려면 [휴지통]을 선택합니다. 4. 그런 다음 아래 그림과 같이 [휴지통 비우기]를 직접 클릭합니다. 5. 마지막으로 [영구 삭제]를 직접 클릭하여 완료합니다.

Python에서 self의 사용법을 소개하기 전에 먼저 Python의 클래스와 인스턴스를 소개하겠습니다. 객체 지향의 가장 중요한 개념은 클래스와 인스턴스입니다. Student 클래스로 표현됩니다. 인스턴스는 클래스를 기반으로 생성된 특정 "객체"입니다. 각 객체는 클래스에서 동일한 메서드를 상속하지만 해당 데이터는 다를 수 있습니다. 1. Student 클래스를 예로 들어 보겠습니다. Python에서 클래스는 다음과 같이 정의됩니다. classStudent(object):pass(Object)는 클래스가 상속받는 클래스를 나타냅니다.

LINUX는 유연성과 사용자 정의 가능성으로 인해 많은 개발자와 시스템 관리자가 가장 먼저 선택하는 운영 체제입니다. LINUX 시스템에서 이미지 처리는 매우 중요한 작업이며 Imagemagick과 Image는 매우 인기 있는 이미지 처리 도구입니다. 이 기사에서는 Centos 시스템에 Imagemagick 및 Image를 설치하는 방법을 소개하고 자세한 설치 튜토리얼을 제공합니다. Imagemagic 설치 Centos 튜토리얼 Imagemagick은 명령줄에서 다양한 이미지 작업을 수행할 수 있는 강력한 이미지 처리 도구 세트입니다. 다음은 Centos 시스템에 Imagemagick을 설치하는 단계입니다.

CSS 차원 속성에 대한 자세한 설명: 높이 및 너비 프런트 엔드 개발에서 CSS는 강력한 스타일 정의 언어입니다. 그 중 높이와 너비는 요소의 높이와 너비를 정의하는 데 사용되는 가장 기본적인 두 가지 치수 속성입니다. 이 기사에서는 이 두 가지 속성을 자세히 분석하고 구체적인 코드 예제를 제공합니다. 1. 높이 속성 높이 속성은 요소의 높이를 정의하는 데 사용됩니다. 픽셀, 백분율 또는

imagefilled직사각형() 함수는 채워진 직사각형을 그립니다. 구문 imagefilled직사각형($img,$x1,$y1,$x2,$y2,$color) 매개변수 image imagecreatetruecolor()를 사용하여 빈 이미지를 만듭니다. x1점 1의 x 좌표입니다. y1 점 1의 y 좌표입니다. x2 x 점 2의 좌표. y2 점 2의 y 좌표입니다. 색상 채우기 색상. 반환 값 imagefilled직사각형() 함수가 성공적으로 반환되었습니다.

Python에서 self에 대한 이해 및 예 Python에서 self는 클래스의 인스턴스 개체 자체를 나타내는 데 사용되는 특수 매개 변수입니다. self를 통해 클래스 메서드에서 클래스의 멤버 변수와 메서드에 액세스할 수 있습니다. 이 기사에서는 self의 역할과 self를 올바르게 사용하여 클래스 멤버에 액세스하는 방법을 설명합니다. 먼저 자아의 개념을 이해해보자. Python에서 클래스를 정의할 때 첫 번째 매개변수는 일반적으로 self입니다. self 매개변수는 클래스의 인스턴스를 가리킵니다.
