php影像縮放和裁剪技術

上一章我們學習了圖片的水印技術,水印技術和我們這一章要學習到的縮放、裁剪技術基本上一致,只不過使用的函數發生了一​​點點變化。

常用的兩個函數如下:

#函數名稱#函數說明
#imagecopyresampled重採樣拷貝部分影像並調整大小
imagecopyresized#拷貝部分影像並調整大小
#

我們來看看這兩個函數,這兩個函數用起來不難。就是參數略有些複雜。並且來完成圖像的縮放或裁剪:

bool imagecopyresampled ( resource $目標圖, resource $來源圖, int $目標開始的x位置, int $目標開始的y位置, int $來源開始的x位置, int $來源開始的y位置, int $目標圖片的寬, int $目標圖片的高, int $來源圖片的寬, int $來源圖片的高)

請注意,上下兩個圖片的參數都是一樣的。

bool imagecopyresized ( resource $目標圖, resource $來源圖, int $目標開始的x位置, int $目標開始的y位置, int $來源開始的x位置, int $來源開始的y位置, int $目標圖片的寬, int $目標圖片的高, int $來源圖片的寬, int $來源圖片的高)

圖片縮放和裁剪的方法都是一樣的,不同的是拷貝時拷貝的是整張圖片還是部份部片。

操作方式說明:
從來源圖片的開始點(x,y)起,指定的寬高的大小圖片。放至到目標圖片的起點(x,y),指定寬高大小的圖片中。

一、縮放圖片,我們將操作步驟化


#1.開啟來源圖片

2.設定圖片縮放百分比(縮放)

3.取得來源圖片,依比調整大小

4.新建一個指定大小的圖片為目標圖

5 .將來源圖調整後的大小放到目標中

6.銷毀資源

我們將范冰冰進行縮放:

20161114147910942958296b354976a.png

999.png

<?php

//打开来源图片
$image = imagecreatefrompng('fbb.png');


//定义百分比,缩放到0.1大小
$percent = 0.1;


// 将图片宽高获取到
list($width, $height) = getimagesize('fbb.png');

//设置新的缩放的宽高
$new_width = $width * $percent;
$new_height = $height * $percent;

//创建新图片
$new_image = imagecreatetruecolor($new_width, $new_height);

//将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

header('content-type:image/jpeg');
imagejpeg($new_image);
?>

document_2015-09-22_56010df4559d3.png二、裁切圖片,我們將操作步驟化:

    1.開啟來源圖片與目標圖片

# ##    2.截取來源圖片中的點,設定寬高。放至到目標圖片中。 (裁切)######    3.儲存圖片輸入######    4.銷毀資源######我們將下圖中的「度」字裁減出來放至到哈士奇的臉上: ######百度法:###############哈士奇圖片:###

10.png

我們來梳理一下想法:

度的開始的座標x,y軸為:407,154

度這個字從x, y座標開始的寬、高為:80,89

圖片中哈士奇臉的位置的x,y軸位置為:281,71

圖片中哈士奇臉的x,y座標寬、高為:132,160

座標和寬高我們都清楚了我們開始按照函數的用法來,使用程式碼來操作圖片:

<?php
 $dst = imagecreatefrompng('hsq.png');
 $src = imagecreatefrompng('du.png');
 imagecopyresized($dst, $src, 281, 71, 407, 154, 132, 160, 80, 90);
 header('content-type:image/jpeg'); 
imagejpeg($dst); 
imagedestroy($dst);
 imagedestroy($src);
 ?>

我們來看看實驗效果:

document_2015-09-22_56011105316ee.png

繼續學習
||
<?php //打开来源图片 $image = imagecreatefrompng('fbb.png'); //定义百分比,缩放到0.1大小 $percent = 0.1; // 将图片宽高获取到 list($width, $height) = getimagesize('fbb.png'); //设置新的缩放的宽高 $new_width = $width * $percent; $new_height = $height * $percent; //创建新图片 $new_image = imagecreatetruecolor($new_width, $new_height); //将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中 imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); header('content-type:image/jpeg'); imagejpeg($new_image); ?>