使用PHP缩略图跟剪切图
使用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);
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); ?>
再说说剪切图,就是不缩放,而是从原图中剪切出一块小图,比较个性。代码如下:
<?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"); ?>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

src和href分別是,1、src是source的縮寫,用來指定外部資源的路徑,通常用於嵌入外部文件,例如圖片、音訊、視訊等,src屬性一般用在img、script、iframe等標籤上;2、href是hypertext reference的縮寫,用於指定超連結的目標資源的路徑,通常用於連結到外部文件或其他頁面,href屬性一般用在a、link等標籤上。

PHP中int類型轉換為位元組的方法詳解在PHP中,我們經常需要將整數類型(int)轉換為位元組(Byte)類型,例如在處理網路資料傳輸、檔案處理或加密演算法等場景中。本文將詳細介紹如何將int類型轉換為位元組類型,以及提供具體的程式碼範例。 1.int型別與位元組的關係在電腦領域,基本資料型別int表示整數,而位元組(Byte)是電腦儲存單位,通常是8位元二進位數據

在C++中,int型別的變數只能保存正整數或負整數值;它們不能保存小數值。有float和double值可用於此目的。為了儲存小數點後最多七位的小數,創建了雙精度資料類型。整數到雙精確度資料類型的轉換可以由編譯器自動完成(稱為「隱式」轉換),也可以由程式設計師向編譯器明確要求(稱為「明確」轉換)。在接下來的部分中,我們將介紹各種轉換方法。隱式轉換編譯器會自動執行隱式類型轉換。要實現這一點,需要兩個變數——一個是浮點類型,另一個是整數類型。當我們簡單地將浮點值或變數分配給整數變數時,編譯器將處理所有其他事情

int32的取值範圍是從-2的31次方到2的31次方減1,即-2147483648到2147483647。 int32是有符號的整數型,表示它可以表示正數、負數和零,它使用1位來表示符號位,而剩餘的31位元用來表示數值。由於一位用來表示符號位,所以int32的有效位數是31位元。

轉換方法:1、使用Itoa()函數,語法「strconv.Itoa(num)」;2、使用FormatInt()函數,可將int型資料轉換成指定進位並以字串的形式傳回,語法「strconv .FormatInt(num,10)」。

在java中,int是32位元有符號資料類型,其變數需要32位元記憶體;int資料類型的有效範圍為-2147483648至2147483647,此範圍中的所有整數稱為整數面量。一個整數字面量可以分配給一個int變量,例如“int num1 = 21;”。

int型別在不同程式語言和不同硬體平台下所佔用的位元組數可能會有所不同。詳細介紹:1、在C語言中,int類型通常佔用2個位元組或4個位元組。在32位元系統中,int型別佔用4個位元組,而在16位元系統中,int型別佔用2個位元組。在64位元系統中,int型別可能佔用8個位元組;2、在Java中,int型別通常佔用4個位元組,而在Python中,int型別沒有位元組數限制,可以自動調整等等。

href和src發送的get請求。詳細說明:1、href屬性,用於指定連結的目標資源,引用外部樣式表會發送GET請求來獲取CSS文件,引用文檔會發送GET請求來獲取指定的HTML文件,引用圖像時它會發送GET請求來獲取指定的圖像檔案;2、src屬性,用於指定嵌入資源的URL,引用圖像時會發送GET請求來獲取指定的圖像文件,引用音頻它會發送一個GET請求來獲取指定的音頻文件等等。
