使用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 옷 제거제

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

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
1 몇 주 전ByDDD
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

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

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

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

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

뜨거운 주제
Cakephp 튜토리얼
1375
52


Win11 활성화 키 영구
40
19

