使用PHPGD,使用良好,一键剪裁各种尺寸,打包下载。经常换icon的懂的,美术给你一个1024的logo,你得ps出各种尺寸,于是有了这个东西。 展示地址:http://www.atool.org/ios_logo.php 核心代码如下 aToolTip ?php//http://www.codepearl.comclass image {/**
使用PHP GD,使用良好,一键剪裁各种尺寸,打包下载。经常换icon的懂的,美术给你一个1024的logo,你得ps出各种尺寸,于是有了这个东西。
展示地址:http://www.atool.org/ios_logo.php
核心代码如下 aToolTip
<?php //http://www.codepearl.com class image { /** * source image * * @var string|array */ private $source; /** * temporay image * * @var file */ private $image; private $ext; /** * erros * * @var array */ private $error; /** * construct * * @param string|array $source */ public function __construct($source = NULL) { if($source != NULL) { $this->source($source); } } /** * set the source image * * @param string|array $source */ public function source($source) { if(!is_array($source)) { $this->source["name"] = $source; $this->source["tmp_name"] = $source; $type = NULL; $ext = strtolower(end(explode(".",$source))); switch($ext) { case "jpg" : case "jpeg" : $type = "image/jpeg"; break; case "gif" : $type = "image/gif"; break; case "png" : $type = "image/png"; break; } $this->source["type"] = $type; } else { $this->source = $source; } $this->destination = $this->source["name"]; } /** * resize the image * * @param int $width * @param int $height */ public function resize($width = NULL,$height = NULL) { if(isset($this->source["tmp_name"]) && file_exists($this->source["tmp_name"])) { list($source_width,$source_height) = getimagesize($this->source["tmp_name"]); if(($width == NULL) && ($height != NULL)) { $width = ($source_width * $height) / $source_height; } if(($width != NULL) && ($height == NULL)) { $height = ($source_height * $width) / $source_width; } if(($width == NULL) && ($height == NULL)) { $width = $source_width; $height = $source_height; } switch($this->source["type"]) { case "image/jpeg" : $created = imagecreatefromjpeg($this->source["tmp_name"]); break; case "image/gif" : $created = imagecreatefromgif($this->source["tmp_name"]); break; case "image/png" : $created = imagecreatefrompng($this->source["tmp_name"]); break; } $this->image = imagecreatetruecolor($width,$height); imagecopyresampled($this->image,$created,0,0,0,0,$width,$height,$source_width,$source_height); } } /** * add watermark on image * * @param string $mark * @param int $opac * @param int $x_pos * @param int $y_pos */ public function watermark($mark,$opac,$x_pos,$y_pos) { if(file_exists($mark) && ($this->image != "")) { $ext = strtolower(end(explode(".",$mark))); switch($ext) { case "jpg" : case "jpeg" : $watermark = imagecreatefromjpeg($mark); break; case "gif" : $watermark = imagecreatefromgif($mark); break; case "png" : $watermark = imagecreatefrompng($mark); break; } list($watermark_width,$watermark_height) = getimagesize($mark); $source_width = imagesx($this->image); $source_height = imagesy($this->image); if($x_pos == "top") $pos = "t"; else $pos = "b"; if($y_pos == "left") $pos .= "l"; else $pos .= "r"; $dest_x = 0; $dest_y = 0; switch($pos) { case "tr" : $dest_x = $source_width - $watermark_width; break; case "bl" : $dest_y = $source_height - $watermark_height; break; case "br" : $dest_x = $source_width - $watermark_width; $dest_y = $source_height - $watermark_height; break; } imagecopymerge($this->image,$watermark,$dest_x,$dest_y,0,0,$watermark_width,$watermark_height,$opac); } } /** * crop the image * * @param int $x * @param int $y * @param int $width * @param int $height */ public function crop($x,$y,$width,$height) { if(isset($this->source["tmp_name"]) && file_exists($this->source["tmp_name"]) && ($width > 10) && ($height > 10)) { switch($this->source["type"]) { case "image/jpeg" : $created = imagecreatefromjpeg($this->source["tmp_name"]); break; case "image/gif" : $created = imagecreatefromgif($this->source["tmp_name"]); break; case "image/png" : $created = imagecreatefrompng($this->source["tmp_name"]); break; } $this->image = imagecreatetruecolor($width,$height); imagecopy($this->image,$created,0,0,$x,$y,$width,$height); } } /** * create final image file * * @param string $destination * @param int $quality */ public function create($destination,$quality = 100) { if($this->image != "") { $extension = substr($destination,-3,3); switch($extension) { case "gif" : imagegif($this->image,$destination,$quality); break; case "png" : $quality = ceil($quality/10) - 1; imagepng($this->image,$destination,$quality); break; default : imagejpeg($this->image,$destination,$quality); break; } } } /** * check if extension is valid * */ public function validate_extension() { if(isset($this->source["tmp_name"]) && file_exists($this->source["tmp_name"])) { $exts = array("image/jpeg", "image/pjpeg", "image/png", "image/x-png"); $ext = $this->source["type"]; $valid = 0; $this->ext = '.not_found'; if ($ext == $exts[0] || $ext == $exts[1]) { $valid = 1; $this->ext = '.jpg'; } // if ($ext == $exts[2]) { // $valid = 1; // $this->ext = '.gif'; // } if ($ext == $exts[2] || $ext == $exts[3]) { $valid = 1; $this->ext = '.png'; } if($valid != 1) { $this->error .= "extension"; } } else { $this->error .= "source"; } } /** * check if the size is correct * * @param int $max */ public function validate_size($max) { if(isset($this->source["tmp_name"]) && file_exists($this->source["tmp_name"])) { $max = $max * 1024; if($this->source["size"] >= $max) { $this->error .= "size"; } } else { $this->error .= "source"; } } /** * check if the dimension is correct * * @param int $limit_width * @param int $limit_height */ public function validate_dimension($limit_width,$limit_height) { if(isset($this->source["tmp_name"]) && file_exists($this->source["tmp_name"])) { list($source_width,$source_height) = getimagesize($this->source["tmp_name"]); if(($source_width > $limit_width) || ($source_height > $limit_height)) { $this->error .= "dimension"; } } else { $this->error .= "source"; } } /** * get the found errors * */ public function error() { $error = array(); if(stristr($this->error,"source")) $error[] = "找不到上传文件"; if(stristr($this->error,"dimension")) $error[] = "上传图片尺寸太大"; if(stristr($this->error,"extension")) $error[] = "不符合要求的格式"; if(stristr($this->error,"size")) $error[] = "图片文件太大"; return $error; } public function error_string() { $error = ""; if(stristr($this->error,"source")) $error .= "找不到上传文件 / "; if(stristr($this->error,"dimension")) $error .= "上传图片尺寸太大 / "; if(stristr($this->error,"extension")) $error .= "不符合要求的格式 / "; if(stristr($this->error,"size")) $error .= "图片文件太大 / "; if(eregi(" / $", $error)) { $error = substr($error, 0, -3); } return $error; } public function ext() { return $this->ext; } }
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사
Windows 11 KB5054979의 새로운 기능 및 업데이트 문제를 해결하는 방법
4 몇 주 전ByDDD
KB5055523을 수정하는 방법 Windows 11에 설치되지 않습니까?
3 몇 주 전ByDDD
Inzoi : 학교 및 대학에 지원하는 방법
1 몇 달 전ByDDD
KB5055518을 수정하는 방법 Windows 10에 설치되지 않습니까?
3 몇 주 전ByDDD
Atomfall에서 사이트 사무실 키를 찾을 위치
4 몇 주 전ByDDD

뜨거운 도구

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

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

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

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.
