Rumah pembangunan bahagian belakang tutorial php 图片处理类 (改进版)

图片处理类 (改进版)

Aug 08, 2016 am 09:28 AM
height image info self

<?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(
			&#39;width&#39;=>$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<br>
                
                
                <p>
                    以上就介绍了图片处理类 (改进版),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。</p>
                <p>
                    </p>
             
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Mengapa NameResolutionError(self.host, self, e) daripada e dan cara menyelesaikannya Mengapa NameResolutionError(self.host, self, e) daripada e dan cara menyelesaikannya Mar 01, 2024 pm 01:20 PM

Sebab ralat adalah NameResolutionError(self.host,self,e)daripada, yang merupakan jenis pengecualian dalam pustaka urllib3 Sebab ralat ini adalah bahawa resolusi DNS gagal, iaitu nama hos atau alamat IP yang telah cuba diselesaikan tidak dapat ditemui. Ini mungkin disebabkan oleh alamat URL yang dimasukkan tidak betul atau pelayan DNS tidak tersedia buat sementara waktu. Bagaimana untuk menyelesaikan ralat ini Mungkin terdapat beberapa cara untuk menyelesaikan ralat ini: Semak sama ada alamat URL yang dimasukkan adalah betul dan pastikan ia boleh diakses Pastikan pelayan DNS tersedia, anda boleh cuba menggunakan arahan "ping" dalam baris arahan untuk menguji sama ada pelayan DNS tersedia Cuba akses tapak web menggunakan alamat IP dan bukannya nama hos jika di belakang proksi

Cara menggunakan Bing Image Creator secara percuma Cara menggunakan Bing Image Creator secara percuma Feb 27, 2024 am 11:04 AM

Artikel ini akan memperkenalkan tujuh cara untuk mendapatkan output berkualiti tinggi menggunakan BingImageCreator percuma. BingImageCreator (kini dikenali sebagai ImageCreator untuk Microsoft Designer) ialah salah satu penjana seni kecerdasan buatan dalam talian yang hebat. Ia menjana kesan visual yang sangat realistik berdasarkan gesaan pengguna. Lebih spesifik, jelas dan kreatif gesaan anda, lebih baik hasilnya. BingImageCreator telah mencapai kemajuan yang ketara dalam mencipta imej berkualiti tinggi. Ia kini menggunakan mod latihan Dall-E3, menunjukkan tahap perincian dan realisme yang lebih tinggi. Walau bagaimanapun, keupayaannya untuk menghasilkan hasil HD secara konsisten bergantung pada beberapa faktor, termasuk pantas

Bagaimana untuk memadam imej dari telefon Xiaomi Bagaimana untuk memadam imej dari telefon Xiaomi Mar 02, 2024 pm 05:34 PM

Bagaimana untuk memadam imej pada telefon bimbit Xiaomi? Anda boleh memadam imej pada telefon bimbit Xiaomi, tetapi kebanyakan pengguna tidak tahu bagaimana untuk memadam imej boleh datang dan sertai kami. Cara memadam imej pada telefon bimbit Xiaomi 1. Mula-mula buka fungsi [Album] dalam telefon bimbit Xiaomi 2. Kemudian semak gambar yang tidak diperlukan dan klik butang [Padam] di sudut kanan bawah ; bahagian atas untuk memasuki kawasan khas , pilih [Tong Kitar Semula];

Bagaimana untuk menggunakan diri dalam Python Bagaimana untuk menggunakan diri dalam Python May 17, 2023 pm 10:40 PM

Sebelum memperkenalkan penggunaan diri dalam Python, mari kita mula-mula memperkenalkan kelas dan contoh dalam Python diwakili oleh kelas Pelajar. Instance ialah "objek" khusus yang dibuat berdasarkan kelas Setiap objek mewarisi kaedah yang sama daripada kelas, tetapi datanya mungkin berbeza. 1. Ambil kelas Pelajar sebagai contoh Dalam Python, kelas ditakrifkan seperti berikut: classStudent(object):pass(Object) menunjukkan kelas mana yang diwarisi oleh kelas Object

Pemasangan Imagemagic Centos dan Tutorial pemasangan Imej Pemasangan Imagemagic Centos dan Tutorial pemasangan Imej Feb 12, 2024 pm 05:27 PM

LINUX ialah sistem pengendalian sumber terbuka Fleksibiliti dan kebolehubahsuaiannya menjadikannya pilihan pertama bagi banyak pembangun dan pentadbir sistem Dalam sistem LINUX, pemprosesan imej adalah tugas yang sangat penting, dan Imagemagick dan Imej adalah Dua alat pemprosesan imej yang sangat popular. artikel akan memperkenalkan anda kepada cara memasang Imagemagick dan Image dalam sistem Centos, dan menyediakan tutorial pemasangan terperinci. Tutorial Centos pemasangan Imagemagic Imagemagick ialah set alat pemprosesan imej yang berkuasa, yang boleh melakukan pelbagai operasi imej di bawah baris arahan Berikut ialah langkah untuk memasang Imagemagick pada sistem Centos: 1

Penjelasan terperinci tentang sifat dimensi CSS: tinggi dan lebar Penjelasan terperinci tentang sifat dimensi CSS: tinggi dan lebar Oct 21, 2023 pm 12:42 PM

Penjelasan terperinci tentang sifat dimensi CSS: tinggi dan lebar Dalam pembangunan bahagian hadapan, CSS ialah bahasa definisi gaya yang berkuasa. Antaranya, ketinggian dan lebar ialah dua atribut dimensi paling asas, digunakan untuk menentukan ketinggian dan lebar elemen. Artikel ini akan menganalisis kedua-dua sifat ini secara terperinci dan memberikan contoh kod khusus. 1. Atribut ketinggian Atribut ketinggian digunakan untuk menentukan ketinggian sesuatu elemen. Anda boleh menggunakan piksel, peratusan atau

imagefilledrectangle() fungsi dalam PHP imagefilledrectangle() fungsi dalam PHP Aug 30, 2023 am 09:05 AM

Fungsi imagefilledrectangle() melukis segi empat tepat yang diisi. Syntax imagefilledrectangle($img,$x1,$y1,$x2,$y2,$color) Imej parameter Gunakan imagecreatetruecolor() untuk mencipta imej kosong. x1Koordinat x bagi titik 1. y1 Koordinat y bagi titik 1. x2 x koordinat titik 2. y2 Koordinat y bagi titik 2. warna isian warna. Fungsi pulangan imagefilledrectangle() berjaya dikembalikan

Memahami kata kunci diri dalam Python Memahami kata kunci diri dalam Python Feb 20, 2024 am 11:27 AM

Pemahaman dan contoh diri dalam Python Dalam Python, diri ialah parameter khas yang digunakan untuk mewakili objek contoh kelas itu sendiri. Melalui kendiri, kita boleh mengakses pembolehubah ahli dan kaedah kelas dalam kaedah kelas. Dalam artikel ini, saya akan menerangkan peranan diri dan cara menggunakan diri dengan betul untuk mengakses ahli kelas. Pertama, marilah kita memahami konsep kendiri. Dalam Python, apabila menentukan kelas, parameter pertama biasanya adalah diri sendiri. Parameter diri menunjuk kepada contoh kelas

See all articles