當前位置:首頁 » 編程語言 » php獲取縮略圖

php獲取縮略圖

發布時間: 2022-10-11 17:14:19

㈠ 如何用php獲取主流視頻網站的縮略圖

給你說下大體的思路吧,正好也剛寫完個爬蟲。

首先,要爬取想要的視頻頁面,先要有能用代碼模擬出來整個登錄過程,(有些需要登陸後才能顯示的),這些包括以什麼形式訪問此頁面GET?POST?,當然這里POST需要加參數才能訪問,另外,最好還要把COOIKES值設置成固定的,這樣訪問才不容易被識別為異常訪問:(我用的是官方發行的一個類-Quest.php)

->實例化HTTP_ HTTP_Request("域名");

->聲明相應的請求;$req->setMethod(HTTP_REQUEST_METHOD_GET); $req->setMethod(HTTP_REQUEST_METHOD_POST);

->發送連接;$req->setURL("http://www..com");

->執行請求:$req->sendRequest();

->得到cookies:$cookies = $req->getResponseCookies();(傳給一個新的數組,在需要反復爬取的頁面盡量傳此cookies,需要登陸爬取的必反)

->清除post和cookies:$req->clearPostData(); $req->clearCookies(); (循環爬取時需要清除)

->添加post方法:$req->addPostData(name,value,false); 參數name,參數value;

->得到理想頁:$response = $req->getResponseBody();

->得到頭信息:$resHeader = $req->getResponseHeader();

->打開指定文件:$res = fopen("c:/love/forever.txt", 'w');

->寫入 :fwrite($res,$response); #寫入

->關閉指針:fclose($res);

我爬取的去文字信息,你要爬取對應視頻圖片直接抓取出來就行了--

你可以試下這個代碼,js:在隨便網頁地址欄輸入---javascript:Ai7Mg6P='';for%20(i7M1bQz=0;i7M1bQz<document.images.length;i7M1bQz++)

{Ai7Mg6P+='<img%20src='+document.images[i7M1bQz].src+'><br>'};if(Ai7Mg6P!=''){document.write('<center>'+Ai7Mg6P+'</center>');

void(document.close())}else{alert('No%20images!')}

加油!

㈡ php創建縮略圖問題

其實PHP創建縮略圖就是在PHP在原圖片的基礎上創建一張新的圖片的過程,而用PHP創建圖像的過程一般分成四部:

第一步:創建一張畫布(只要是畫圖都需要一張畫布的)

第二步:在畫布畫東西(可以畫各種圖形,如長方形,直線,等等,也可以在畫布上寫字啥的,或者畫其他的圖形)

第三步:畫完圖之後,將圖片輸出,將圖片輸出到瀏覽器,在瀏覽器顯示出來,或者保存為一張新 的圖片(縮略圖一般是保存為圖片文件的)

第四步:因為創建畫布時打開了文件流,所以要關閉資源,節省內存。(個人覺得你可以這樣理解,打開了一畫布,把它鋪開了,畫完了就把畫布捲起來,收起來,不要佔著鋪的地方)


具體的代碼如下:(這段代碼來源於ThinkPHP的圖像類)

<?php
classThumb{
/**
*@paramstring$image原圖
*@paramstring$thumbname縮略圖文件名
*@paramstring$type圖像格式
*@paramstring$maxWidth寬度
*@paramstring$maxHeight高度
*/
staticcreate($img,$thumbname,$type='',$maxWidth=200,$maxHeight=50)
{
$info=getimagesize($img);//獲取原圖的圖像信息(長、寬、格式等)
if($info!==false){
$srcWidth=$info['width'];
$srcHeight=$info['height'];
$type=empty($type)?$info['type']:$type;
$type=strtolower($type);
$interlace=$interlace?1:0;
unset($info);
$scale=min($maxWidth/$srcWidth,$maxHeight/$srcHeight);//計算縮放比例
if($scale>=1){
//超過原圖大小不再縮略
$width=$srcWidth;
$height=$srcHeight;
}else{
//縮略圖尺寸
$width=(int)($srcWidth*$scale);
$height=(int)($srcHeight*$scale);
}

//載入原圖(在原圖的基礎上創建畫布,為第一步)
$createFun='ImageCreateFrom'.($type=='jpg'?'jpeg':$type);
if(!function_exists($createFun)){
returnfalse;
}
$srcImg=$createFun($image);

//第二步開始
//創建縮略圖
if($type!='gif'&&function_exists('imagecreatetruecolor'))
$thumbImg=imagecreatetruecolor($width,$height);
else
$thumbImg=imagecreate($width,$height);
//png和gif的透明處理byluofei614
if('png'==$type){
imagealphablending($thumbImg,false);//取消默認的混色模式(為解決陰影為綠色的問題)
imagesavealpha($thumbImg,true);//設定保存完整的alpha通道信息(為解決陰影為綠色的問題)
}elseif('gif'==$type){
$trnprt_indx=imagecolortransparent($srcImg);
if($trnprt_indx>=0){
//itstransparent
$trnprt_color=imagecolorsforindex($srcImg,$trnprt_indx);
$trnprt_indx=imagecolorallocate($thumbImg,$trnprt_color['red'],$trnprt_color['green'],$trnprt_color['blue']);
imagefill($thumbImg,0,0,$trnprt_indx);
imagecolortransparent($thumbImg,$trnprt_indx);
}
}
//復制圖片
if(function_exists("ImageCopyResampled"))
imageresampled($thumbImg,$srcImg,0,0,0,0,$width,$height,$srcWidth,$srcHeight);
else
imageresized($thumbImg,$srcImg,0,0,0,0,$width,$height,$srcWidth,$srcHeight);

//第三步:輸出圖像
//生成圖片
$imageFun='image'.($type=='jpg'?'jpeg':$type);
$imageFun($thumbImg,$thumbname);

//第四步:關閉畫布
imagedestroy($thumbImg);
imagedestroy($srcImg);
return$thumbname;
}
returnfalse;

}

}
?>

你使用的時候直接用:

requireThumb.class.php
$thumb=Thumb::create('s.jpg','thumb_s.jpg',100,50);

希望我的回答你能滿意

㈢ php怎麼生成縮略圖

給你個函數吧
//*****生成縮略圖*****
//只考慮jpg,png,gif格式
//$srcImgPath源圖象路徑
//$targetImgPath目標圖象路徑
//$targetW目標圖象寬度
//$targetH目標圖象高度
functionmakeThumbnail($srcImgPath,$targetImgPath,$targetW,$targetH)
{
$imgSize=GetImageSize($srcImgPath);
$imgType=$imgSize[2];
//@使函數不向頁面輸出錯誤信息
switch($imgType)
{
case1:
$srcImg=@ImageCreateFromGIF($srcImgPath);
break;
case2:
$srcImg=@ImageCreateFromJpeg($srcImgPath);
break;
case3:
$srcImg=@ImageCreateFromPNG($srcImgPath);
break;
}
//取源圖象的寬高
$srcW=ImageSX($srcImg);
$srcH=ImageSY($srcImg);
if($srcW>$targetW||$srcH>$targetH)
{
$targetX=0;
$targetY=0;
if($srcW>$srcH)
{
$finaW=$targetW;
$finalH=round($srcH*$finaW/$srcW);
$targetY=floor(($targetH-$finalH)/2);
}
else
{
$finalH=$targetH;
$finaW=round($srcW*$finalH/$srcH);
$targetX=floor(($targetW-$finaW)/2);
}
//function_exists檢查函數是否已定義
//ImageCreateTrueColor本函數需要GD2.0.1或更高版本
if(function_exists("ImageCreateTrueColor"))
{
$targetImg=ImageCreateTrueColor($targetW,$targetH);
}
else
{
$targetImg=ImageCreate($targetW,$targetH);
}
$targetX=($targetX<0)?0:$targetX;
$targetY=($targetX<0)?0:$targetY;
$targetX=($targetX>($targetW/2))?floor($targetW/2):$targetX;
$targetY=($targetY>($targetH/2))?floor($targetH/2):$targetY;
//背景白色
$white=ImageColorAllocate($targetImg,255,255,255);
ImageFilledRectangle($targetImg,0,0,$targetW,$targetH,$white);
/*
PHP的GD擴展提供了兩個函數來縮放圖象:
ImageCopyResized在所有GD版本中有效,其縮放圖象的演算法比較粗糙,可能會導致圖象邊緣的鋸齒。
ImageCopyResampled需要GD2.0.1或更高版本,其像素插值演算法得到的圖象邊緣比較平滑,
該函數的速度比ImageCopyResized慢。
*/
if(function_exists("ImageCopyResampled"))
{
ImageCopyResampled($targetImg,$srcImg,$targetX,$targetY,0,0,$finaW,$finalH,$srcW,$srcH);
}
else
{
ImageCopyResized($targetImg,$srcImg,$targetX,$targetY,0,0,$finaW,$finalH,$srcW,$srcH);
}
switch($imgType){
case1:
ImageGIF($targetImg,$targetImgPath);
break;
case2:
ImageJpeg($targetImg,$targetImgPath);
break;
case3:
ImagePNG($targetImg,$targetImgPath);
break;
}
ImageDestroy($srcImg);
ImageDestroy($targetImg);
}
else//不超出指定寬高則直接復制
{
($srcImgPath,$targetImgPath);
ImageDestroy($srcImg);
}
}
代碼已經測試,成功運行!

㈣ PHP批量生成縮略圖

用不著那麼麻煩,直接下載文件夾,用光影魔術手,批量生成文件夾內的文件,同名覆蓋上去就了,連水印,效果,邊框什麼的都可以加上去,方便省時;
如果硬要寫程序的話,可以用「jsw0523」裡面寫的img2thumb 的函數,通過資料庫讀取數據循環,直接循環體內通過參數調用就行了

㈤ 求如何用php讀取指定文件夾中的所有圖片,生成縮略圖,在網頁上分頁顯示,單擊縮略圖就在新頁面顯示大圖。

生成縮略圖採用讀取文件夾的方式
$handle = opendir($dir)
while(false !== ($file = readdir($handle)))
{
if($file 是圖片)
{
生成縮略圖代碼
}
}

㈥ 如何用PHP獲取SWF和gif動畫的縮略圖

這個貌似php自己的庫還不行哈 ,只有自己寫,但是那好難的,你直接在商場的時候加一個縮略圖上傳

㈦ 用PHP怎麼生成高質量的縮略圖

ImageMagick沒用過,一般直接用內置的GD庫,沒有發現你說的這么嚴重的失真問題。

利用GD庫創建縮略圖的大致思路如下:

依據設定的尺寸創建真彩色畫布$im=createtruecolor(120,90);

讀取原始文件尺寸,按照原始尺寸的寬度和高度比例,計算出縮略圖的大小(可能與給定的尺寸有一定的偏差)

將原始圖像拷貝並縮放到創建的真彩色縮略圖畫布上。

輸出縮略圖文件。

可能就是因為利用的是這個真彩色,縮略圖效果還湊合,也不是說絕對不失真的

你可以去後盾人平台看看,裡面的東西不錯

㈧ php如何獲取優酷的縮略圖

你首先需要通過火狐Firebug分析提取到縮略圖的地址,然後再通過curl採集圖片文件保存到本地。

關於curl的使用,可以訪問:http://www.zjmainstay.cn/php-curl學習,文章中提供了

大量的curl應用示例。

㈨ 如何用PHP獲取優酷、土豆、酷6、56等視頻網站的視頻縮略圖

方案1,
上那些網站,查看源代碼,從中找出那些視頻的鏈接地址,加到自己網頁里,
方案2
用PHP里的小偷工具
自己看著辦吧,你給的分也太少了

熱點內容
循跡小車演算法 發布:2024-12-22 22:28:41 瀏覽:81
scss一次編譯一直生成隨機數 發布:2024-12-22 22:04:24 瀏覽:955
嫁接睫毛加密 發布:2024-12-22 21:50:12 瀏覽:975
linuxbin文件的安裝 發布:2024-12-22 21:46:07 瀏覽:798
vlcforandroid下載 發布:2024-12-22 21:45:26 瀏覽:664
電腦做網關把數據發送至伺服器 發布:2024-12-22 21:44:50 瀏覽:431
新華三代理什麼牌子的伺服器 發布:2024-12-22 21:33:21 瀏覽:342
歡太會員密碼是什麼 發布:2024-12-22 20:57:28 瀏覽:74
sqllocaldb 發布:2024-12-22 20:07:08 瀏覽:126
如何找到我的伺服器 發布:2024-12-22 19:52:14 瀏覽:301