Rumah pembangunan bahagian belakang tutorial php 使用PHP缩略图跟剪切图

使用PHP缩略图跟剪切图

Jun 13, 2016 pm 12:32 PM
int resource src

使用PHP缩略图和剪切图
API:
resource imagecreatetruecolor ( int $width , int $height )
magecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。

是否定义了本函数取决于 PHP 和 GD 的版本。从 PHP 4.0.6 到 4.1.x 只要加载了 GD 模块本函数一直存在,但是在没有安装 GD2 的时候调用,PHP 将发出致命错误并退出。在 PHP 4.2.x 中此行为改为发出警告而不是错误。其它版本只在安装了正确的 GD 版本时定义了本函数。

bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。

bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )
imagejpeg() 从 image 图像以 filename 为文件名创建一个 JPEG 图像。

ool imagedestroy ( resource $image )
imagedestroy() 释放与 image 关联的内存。image 是由图像创建函数返回的图像标识符,例如 imagecreatetruecolor()。



http://www.cnblogs.com/xiaomia/archive/2010/11/13/1876191.html
一开始采用了 imagecopyresized 方法进行图像等比缩小,实际操作后发现,图像缩小后燥点非常严重。后再换用 imagecopysampled 方法,该方法会对图像进行重新采样,对缩小的图像进行平滑处理,使清晰度得到很大提高

list($src_w,$src_h)=getimagesize($src_img);  // 获取原图尺寸

$dst_scale = $dst_h/$dst_w; //目标图像长宽比
$src_scale = $src_h/$src_w; // 原图长宽比

if($src_scale>=$dst_scale){  // 过高
$w = intval($src_w);
$h = intval($dst_scale*$w);

$x = 0;
$y = ($src_h - $h)/3;
}
else{ // 过宽
$h = intval($src_h);
$w = intval($h/$dst_scale);

$x = ($src_w - $w)/2;
$y = 0;
}

// 剪裁
$source=imagecreatefromjpeg($src_img);
$croped=imagecreatetruecolor($w, $h);
imagecopy($croped,$source,0,0,$x,$y,$src_w,$src_h);

// 缩放
$scale = $dst_w/$w;
$target = imagecreatetruecolor($dst_w, $dst_h);
$final_w = intval($w*$scale);
$final_h = intval($h*$scale);
imagecopyresampled($target,$croped,0,0,0,0,$final_w,$final_h,$w,$h);

// 保存
$timestamp = time();
imagejpeg($target, "$timestamp.jpg");
imagedestroy($target);
Salin selepas log masuk


http://www.cnblogs.com/analyzer/articles/1267017.html
先说说缩略图,它用得比较多,代码如下:
<?php    
 header("Content-type: image/png");    
 //原图    
 $filename='source.jpg';    
 //缩放比例 新图/原图    
 $percent = '0.5';    
 list($width,$height) = getimagesize($filename);    
 $newwidth = $width * $percent;    
 $newheight = $height * $percent;    
// Load    
$thumb = imagecreatetruecolor($newwidth, $newheight);    
$source = imagecreatefromjpeg($filename);    
// Resize    
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);    
// Output    
imagepng($thumb);    
?> 
Salin selepas log masuk



再说说剪切图,就是不缩放,而是从原图中剪切出一块小图,比较个性。代码如下:
<?php    
 $maxW=300;    
 $maxH=300;    
 //图片路径    
 $link= "big.jpg";    
 $img = imagecreatefromjpeg($link);    
 list($width, $height, $type, $attr) = getimagesize($link);    
 $widthnum=ceil($width/$maxW);    
 $heightnum=ceil($height/$maxH);    
$iOut = imagecreatetruecolor ($maxW,$maxH);    
//bool imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h )    
//将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。    
   
//整图循环切割    
for ($i=0;$i < $heightnum;$i++) {    
 for ($j=0;$j < $widthnum;$j++) {    
 imagecopy($iOut,$img,0,0,($j*$maxW),($i*$maxH),$maxW,$maxH);//复制图片的一部分    
 imagejpeg($iOut,"images/".$i."_".$j.".jpg"); //输出成0_0.jpg,0_1.jpg这样的格式    
 }    
}    
   
//只剪切一个开始部位的小图.复制图片的一部分    
 imagecopy($iOut,$img,0,0,0,0,$maxW,$maxH);    
 imagejpeg($iOut,"images/sm.jpg");    
?>
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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Apakah maksud src dan href? Apakah maksud src dan href? Aug 16, 2023 pm 05:00 PM

src dan href masing-masing, 1. src ialah singkatan sumber, yang digunakan untuk menentukan laluan sumber luaran Ia biasanya digunakan untuk membenamkan fail luaran, seperti gambar, audio, video, dll. Atribut src secara amnya digunakan pada img, skrip, iframe dan tag lain ; 2. href ialah singkatan rujukan hiperteks, yang digunakan untuk menentukan laluan sumber sasaran hiperpautan. Atribut href biasanya digunakan pada teg seperti pautan dan.

Penjelasan terperinci tentang kaedah menukar jenis int kepada bait dalam PHP Penjelasan terperinci tentang kaedah menukar jenis int kepada bait dalam PHP Mar 06, 2024 pm 06:18 PM

Penjelasan terperinci tentang kaedah menukar jenis int kepada bait dalam PHP Dalam PHP, kita selalunya perlu menukar jenis integer (int) kepada jenis bait (Byte), seperti semasa berurusan dengan penghantaran data rangkaian, pemprosesan fail atau algoritma penyulitan . Artikel ini akan memperkenalkan secara terperinci cara menukar jenis int kepada jenis bait dan memberikan contoh kod khusus. 1. Hubungan antara jenis int dan bait Dalam medan komputer, jenis data asas int mewakili integer, manakala bait (Byte) ialah unit storan komputer, biasanya data binari 8-bit

Program C++ untuk menukar pembolehubah jenis berganda kepada jenis int Program C++ untuk menukar pembolehubah jenis berganda kepada jenis int Aug 25, 2023 pm 08:25 PM

Dalam C++, pembolehubah jenis int hanya boleh menyimpan nilai integer positif atau negatif; Terdapat nilai terapung dan berganda tersedia untuk tujuan ini. Jenis data berganda dicipta untuk menyimpan perpuluhan sehingga tujuh digit selepas titik perpuluhan. Penukaran integer kepada jenis data berganda boleh dilakukan secara automatik oleh pengkompil (dipanggil penukaran "tersirat"), atau ia boleh diminta secara eksplisit oleh pengaturcara daripada pengkompil (dipanggil penukaran "eksplisit"). Dalam bahagian berikut, kami akan merangkumi pelbagai kaedah penukaran. Penukaran tersirat Pengkompil melakukan penukaran jenis tersirat secara automatik. Untuk mencapai matlamat ini, dua pembolehubah diperlukan - satu jenis titik terapung dan satu lagi jenis integer. Apabila kita hanya menetapkan nilai titik terapung atau pembolehubah kepada pembolehubah integer, pengkompil menjaga semua perkara lain

Apakah julat nilai int32 Apakah julat nilai int32 Aug 11, 2023 pm 02:53 PM

Julat nilai int32 ialah dari -2 hingga kuasa ke-31 hingga 2 hingga kuasa ke-31 tolak 1, iaitu, -2147483648 hingga 2147483647. int32 ialah jenis integer bertanda, yang bermaksud ia boleh mewakili nombor positif, nombor negatif dan sifar Ia menggunakan 1 bit untuk mewakili bit tanda, dan baki 31 bit digunakan untuk mewakili nilai berangka. Oleh kerana satu bit digunakan untuk mewakili bit tanda, bilangan berkesan bit int32 ialah 31.

Berapa banyak bait yang diduduki int? Berapa banyak bait yang diduduki int? Jan 22, 2024 pm 03:14 PM

Bilangan bait yang diduduki oleh jenis int mungkin berbeza dalam bahasa pengaturcaraan yang berbeza dan platform perkakasan yang berbeza. Pengenalan terperinci: 1. Dalam bahasa C, jenis int biasanya menduduki 2 bait atau 4 bait. Dalam sistem 32-bit, jenis int menduduki 4 bait, manakala dalam sistem 16-bit, jenis int menduduki 2 bait. Dalam sistem 64-bit, jenis int mungkin menduduki 8 bait 2. Di Java, jenis int biasanya menduduki 4 bait, manakala dalam Python, jenis int tidak mempunyai had bait dan boleh dilaraskan secara automatik, dsb.

go语言怎么将int转为字符串类型 go语言怎么将int转为字符串类型 Jun 04, 2021 pm 03:56 PM

转换方法:1、使用Itoa()函数,语法“strconv.Itoa(num)”;2、使用FormatInt()函数,可将int型数据转换成指定进制并以字符串的形式返回,语法“strconv.FormatInt(num,10)”。

Berapakah bilangan nombor java int? Berapakah bilangan nombor java int? Mar 06, 2023 pm 04:09 PM

Di Java, int ialah jenis data bertanda 32-bit, dan pembolehubahnya memerlukan memori 32-bit julat sah jenis data int ialah -2147483648 hingga 2147483647, dan semua integer dalam julat ini dipanggil literal integer. Literal integer boleh diberikan kepada pembolehubah int, seperti "int num1 = 21;".

Bagaimana untuk menukar rentetan kepada jenis int Bagaimana untuk menukar rentetan kepada jenis int Aug 02, 2023 am 10:59 AM

Kaedah untuk menukar rentetan kepada jenis int: 1. Gunakan fungsi terbina dalam int( 2. Gunakan try-except untuk mengendalikan pengecualian 3. Gunakan ungkapan biasa.

See all articles