Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
采集等項目時,需要對html代碼進行分析,其中一個需求就是對html進行分析,得到所有的圖片地址,再想辦法直接上傳到自己的服務器,下面是得到所有圖片地址的函數。
/// <summary>
/// 取得HTML代碼中所有圖片的 URL。
/// </summary>
/// <param name="ResourseHtmlStrings">HTML代碼</param>
/// <returns>圖片的URL列表,返回null時出錯</returns>
public string[] GetHtmlImageUrls(string ResourseHtmlStrings)
{
try
{
// 定義正則表達式用來匹配 img 標簽
Regex regImg=new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
// 搜索匹配的字符串
MatchCollection matches=regImg.Matches(ResourseHtmlStrings.ToLower());
int i=0;
string[] imgURLs=new string[matches.Count];
// 取得匹配項列表
foreach (Match match in matches)
imgURLs[i++]=match.Groups["imgUrl"].Value;
return imgURLs;
}
catch (Exception ErrMsg)
{
return null;
}
}
得到的結果是圖片地址數組
好程序員分享html圖片絕對路徑改相對路徑,要弄懂相對路徑修改成絕對路徑那么必須要知道路徑的基本概念。
html中的路徑:指文件存放的位置,在網頁中利用路徑可以引用文件,完成:插入圖像、視頻等功能。表示在html中路徑的使用方式有兩種:相對路徑,絕對路徑。
1、相對路徑:
html中的相對路徑的概念是:指當前html頁面引用的文件 相對于 當前html頁面文件的路徑,在html網頁開發過程中多采用這種方法來引用我們所想使用的內容。
相對路徑有多種使用的方法,這些方法標識表示的意義也不相同。那么接下來我們來看一下是如何使用的。
./ :代表文件所在的目錄(通常情況下可以省略不寫)
../ :代表文件所在的父級目錄(也就是上一級目錄)
../../ :代表文件所在的父級目錄的父級目錄(也就是上一級上一級目錄)
/ :代表文件所在的根目錄
如:<img src=’images/1.jpg’/>表示此代碼所在html文件的路徑下的images文件夾下的1.jpg文件。
<img src=’../images/1.jpg’/>表示此代碼所在html文件的路徑的上一級的images文件夾下的1.jpg文件。
2、絕對地址:
就是直接從磁盤的位置去定位文件的地址。類似于我們通過我的電腦一盤符的方式來尋找想要的指定內容,或者說直接帶著協議、域名,
3、如何把html圖片絕對路徑改為相對路徑
可以使用html當中給我們提供的<base/>標簽來完成。<base> 標簽為頁面上的所有路徑的引用設置了默認地址或默認目標。 通常情況下,瀏覽器會從當前文檔的 URL 中獲取到相應的元素來填寫相對的引用路徑。
首先<base/>標簽是一個單標簽,同時所有的瀏覽器都支持 <base/>這一個標簽標簽所以兼容性上大家不用考慮。同時在使用<base/>標簽的時候必須注意<base/>標簽,必須放置到html網頁的<head></head>標簽當中,同時每一個html頁面當中最多只能有一個<base/>標簽,它的作用也很明顯。就是用來為html頁面上的所有路徑引用來規定默認地址或默認目標,是一種設置網頁中引用路徑的標記。
剛才我們已經在前面提到了 在html中常見的路徑形式有相對路徑和絕對路徑,那么在這個時候使用了<base/>標簽指定了目標的話,那么我們的用戶使用的客戶端瀏覽器就會把這個內容解析成為當前html中引用大的所有相對路徑,同時包括<a></a>超鏈接標簽、<img/>圖片標簽、<link>css引用標簽、<form></form> 表單標簽中的地址。也就是說,瀏覽器解析的時候會在引用的路徑的前面會自動的加上<base/>上面綁定的地址,同時在這個時候頁面中的相對路徑也都會被轉換成為絕對路徑。
使用語法:
<head>
<base href="目標路徑" />
</head>
首先我們看看效果:
實現這樣的功能需要學習以下幾點內容。
1.認識<img/><map><area/></map>基本結構
首先復制一個html框架,命名為“圖片區域鏈接.html”,示例代碼如下:
<!DOCTYPE HTML>
<html>
<head>
<title>圖片區域鏈接</title>
<meta charset="utf-8">
</head>
<body>
</body>
</html>
向<body></body>中添加<img><map><area/></map>基本結構,示例代碼如下:
<body>
<img/>
<map>
<area/>
</map>
</body>
指定要添加區域鏈接的圖片的路徑,如下:
<img src="img/image1.jpg"/>
<map>
<area/>
</map>
讓<img>標簽通過<map>的名字來驅使<map>為自己工作。
需要兩步,第一,給<map>起名字,name=“map”,為了兼容所有的瀏覽器,還要加上id=“map”(有的瀏覽器只認id)。
第二,讓<img>叫出<map>的名字或id,usemap="#map"。大家要注意,叫名字時要加#。這個在之前的教程中也經常出現。
示例代碼如下:
<img src="img/image1.jpg" usemap="#map"/>
<map name="map" id="map">
<area/>
</map>
下面來劃分區域。
2.為圖片劃分區域的方法
<area>是用來劃分區域的標簽,area也是“”區域“”的意思。
默認的shape(形狀)屬性有“矩形(rect)”、“圓形(circ)”、“多邊形(poly)”三個值。
分別添加三個形狀,示例代碼如下:
<img src="img/image1.jpg" usemap="#map"/>
<map name="map" id="map">
<area shape="rect"/>
<area shape="circ"/>
<area shape="poly"/>
</map>
下面我們就要為區域規定參數,也就是在圖像上的位置和范圍大小。
為<area>添加coords屬性可以指定區域的位置和范圍。
如果shape="rect" 則coords由四個參數組成。例如coords="0,0,50,50"。從左到右,兩兩一組,組成兩個平面坐標,即(0,0)和(50,50),單位是“像素”,矩形區域如下:
如果shape=“circ”,coords=“50,50,10”。(50,50)定義了圓心,10是半徑。如圖:
如果shape=“poly”,coords的參數不少于3對!注意是“對”!從左到右,兩個數就是一組坐標,三組坐標可以確定一個三角形,多組坐標可以確定多邊形。例如
這組參數畫出了下圖中殲20的邊框線(600像素*400像素,如果圖像的長寬像素數變了,參數就不正確了),如圖:
這時,大家會有一個問題:如何才能知道圖像中某個像素點的坐標呢?
3.使用Gimp軟件精準定位圖片區域
使用Gimp軟件可以解決這個問題。
Gimp是一款類似于Photoshop的數字圖像處理軟件,不同的是,Gimp是開源免費的。
下載地址:https://www.gimp.org/
雙擊安裝即可,注意選擇一下安裝目錄。
完成安裝之后打開,界面如下:
點擊“文件”找到“打開”:
選擇要打開的圖片名字:
點擊名稱后,右邊會有圖像預覽,點擊“打開”即可:
打開后如圖:
把鼠標放到圖像的任意位置,看左下角:
這里就會顯示我們鼠標所在的像素坐標數值。
這樣我們就能方便地寫“poly”的coords了。
請在空閑時找一張圖片演練一下吧!
4.為區域添加鏈接
在<area/>標簽中添加href屬性即可指定鏈接路徑,如下:
href="https://www.zhihu.com/question/284642168"
添加title屬性可以在鼠標滑過鏈接區域時提示讀者,如下:
title="殲20氣動外形分析"
今天的內容結束了,圖像區域鏈接在使用時還有一些注意事項,我們下次再詳細討論。
使用碎片時間,學習完整知識!關注大魚師兄,一起精研技藝。
HTML序章(學習目的、對象、基本概念)——零基礎自學網頁制作
HTML是什么?——零基礎自學網頁制作
第一個HTML頁面如何寫?——零基礎自學網頁制作
HTML頁面中head標簽有啥用?——零基礎自學網頁制作
初識meta標簽與SEO——零基礎自學網頁制作
HTML中的元素使用方法1——零基礎自學網頁制作
HTML中的元素使用方法2——零基礎自學網頁制作
HTML元素中的屬性1——零基礎自學網頁制作
HTML元素中的屬性2(路徑詳解)——零基礎自學網頁制作
使用HTML添加表格1(基本元素)——零基礎自學網頁制作
使用HTML添加表格2(表格頭部與腳部)——零基礎自學網頁制作
使用HTML添加表格3(間距與顏色)——零基礎自學網頁制作
使用HTML添加表格4(行顏色與表格嵌套)——零基礎自學網頁制作
16進制顏色表示與RGB色彩模型——零基礎自學網頁制作
HTML中的塊級元素與內聯元素——零基礎自學網頁制作
初識HTML中的<div>塊元素——零基礎自學網頁制作
在HTML頁面中嵌入其他頁面的方法——零基礎自學網頁制作
封閉在家學網頁制作!為頁面嵌入PDF文件——零基礎自學網頁制作
HTML表單元素初識1——零基礎自學網頁制作
HTML表單元素初識2——零基礎自學網頁制作
HTML表單3(下拉列表、多行文字輸入)——零基礎自學網頁制作
HTML表單4(form的action、method屬性)——零基礎自學網頁制作
HTML列表制作講解——零基礎自學網頁制作
為HTML頁面添加視頻、音頻的方法——零基礎自學網頁制作
音視頻格式轉換神器與html視頻元素加字幕——零基礎自學網頁制作
HTML中使用<a>標簽實現文本內鏈接——零基礎自學網頁制作
*請認真填寫需求信息,我們會在24小時內與您取得聯系。