導航:首頁 > 程序命令 > 程序員賽車的gif

程序員賽車的gif

發布時間:2024-10-24 23:11:15

程序員必須知道的HTML常用代碼有哪些

html+css代碼
文本設置
1、font-size: 字型大小參數
2、font-style: 字體格式
3、font-weight: 字體粗細
4、顏色屬性
color: 參數
注意使用網頁安全色

超鏈接設置
text-decoration: 參數
主要用途是改變瀏覽器顯示文字鏈接時的下劃線。
參數取值范圍:
underline:為文字加下劃線
overline:為文字加上劃線
line-through:為文字加刪除線
blink:使文字閃爍
none:不顯示上述任何效果

背景
1、背景顏色
background-color: 參數
2、背景圖片
background-image: url(URL)
URL就是背景圖片的存放路徑,none表示無。
3、背景圖片重復
background-repeat: 參數
參數取值范圍 :
no-repeat:不重復平鋪背景圖片
repeat-x:使圖片只在水平方向上平鋪
repeat-y:使圖片只在垂直方向上平鋪
如果不指定背景圖片重復屬性,瀏覽器默認的是背景圖片向水平、垂直兩個方向上平鋪。
4、背景圖片固定
背景圖片固定控制背景圖片是否隨網頁的滾動而滾動。如果不設置背景圖片固定屬性,瀏覽器默認背景圖片隨網頁的滾動而滾動。為了避免過於花哨的背景圖片在滾動時轉移瀏覽者的注意力,一般都設為固定
background-attachment: 參數
參數取值范圍:
fixed:網頁滾動時,背景圖片相對於瀏覽器的窗口而言,固定不動
scroll:網頁滾動時,背景圖片相對於瀏覽器的窗口而言,一起滾動

區塊
1、單詞間距
word-spacing: 間隔距離
2、字母間距
letter-spacing: 字母間距
3、文本對齊
text-align: 參數
參數的取值:
left:左對齊
right:右對齊
center:居中對齊
justify:相對左右對齊
4、垂直對齊
vertical-align: 參數
top:頂對齊
bottom:底對齊
text-top:相對文本頂對齊
text-bottom:相對文本底對齊
baseline:基準線對齊
middle:中心對齊
sub:以下標的形式顯示
super:以上標的形式顯示
5、文本縮進
text-indent: 縮進距離
12px相當於一個文字距離
6、空格
white-space: 參數
normal 正常
pre 保留
nowrap 不換行
7、顯示樣式
display: 參數
參數取值范圍:
block:塊級元素,在對象前後都換行
inline:在對象前後都不換行
list-item:在對象前後都換行,增加了項目符號
none:無顯示

方框
1、height 高度
2、width 寬度
3、padding 內邊距
4、margin 外邊距
5、float(浮動):可以讓塊級元素在一行中排列,例如橫向菜單。
6、clear 清除浮動

邊框
1、樣式
border style 參數
邊框樣式的參數:
none:無邊框
dotted:邊框為點線
dashed:邊框為長短線
solid:邊框為實線
double:邊框為雙線
2、寬度
border width 參數
3、顏色
border color 參數

列表
list-style-type 列表樣式
不同瀏覽器的列表符可能不相同,可能會影響到網頁,所以網頁中的列表大多都是由背景圖片顯示。
控制用戶界面的樣式

滑鼠
cursor:滑鼠形狀參數
CSS滑鼠形狀參數表:
滑鼠形狀:CSS代碼
style="cursor:hand" 手形
style="cursor:crosshair" 十字形
style="cursor:text" 文本形
style="cursor:wait" 沙漏形
style="cursor:move" 十字箭頭形:
style="cursor:help" 問號形
style="cursor:e-resize" 右箭頭形
style="cursor:n-resize" 上箭頭形
style="cursor:nw-resize" 左上箭頭形
style="cursor:w-resize" 左箭頭形
style="cursor:s-resize" 下箭頭形
style="cursor:se-resize" 右下箭頭形
style="cursor:sw-resize" 左下箭頭形

HTML常用代碼之:結構性定義
文件類型<HTML></HTML> (放在檔案的開頭與結尾)
文件主題<TITLE></TITLE> (必須放在「文頭」區塊內)
文頭<HEAD></HEAD> (描述性資料,像是「主題」)
文體<BODY></BODY> (文件本體)
標題<H?></H?> (從1到6,有六層選擇)
標題的對齊 <H?ALIGN=LEFT|CENTER|RIGHT></H?>
區分<DIV></DIV>
區分的對齊 <DIVALIGN=LEFT|RIGHT|CENTER|JUSTIFY></DIV>
引文區塊<BLOCKQUOTE></BLOCKQUOTE> (通常會內縮)
強調<EM></EM> (通常會以斜體顯示)
特別強調<STRONG></STRONG> (通常會以加粗顯示)
引文<CITE></CITE> (通常會以斜體顯示)
碼<CODE></CODE> (顯示原始碼之用)
樣本<SAMP></SAMP>
鍵盤輸入<KBD></KBD>
變數<VAR></VAR>
定義<DFN></DFN> (有些瀏覽器不提供)
地址 <ADDRESS></ADDRESS>
大字<BIG></BIG>
小字<SMALL></SMALL>
與外觀相關的標簽(作者自訂的表現方式)
加粗<B></B>
斜體<I></I>
底線<U></U> (尚有些瀏覽器不提供)
刪除線<S></S> (尚有些瀏覽器不提供)
下標<SUB></SUB>
上標<SUP></SUP>
打字機體<TT></TT> (用單空格字型顯示)
預定格式<PRE></PRE> (保留文件中空格的大小)
預定格式的寬度<PRE WIDTH=?></PRE>(以字元計算)
向中看齊<CENTER></CENTER> (文字與圖片都可以)
閃耀<BLINK></BLINK> (有史以來最被嘲弄的標簽)
字體大小 <FONTSIZE=?></FONT>(從1到7)
改變字體大小 <FONTSIZE=+|-?></FONT>
基本字體大小 <BASEFONTSIZE=?> (從1到7; 內定為3)
字體顏色 <FONTCOLOR="#$$"></FONT>($$為顏色代碼)

HTML常用代碼之:修改頁面的實用性HTML代碼
貼圖:<img src="圖片地址">
加入連接:<a href="所要連接的相關地址">寫上你想寫的字</a>
在新窗口打開連接:<a href="相關地址" target="_blank">寫上要寫的字</a>
移動字體(走馬燈):<marquee>寫上你想寫的字</marquee>
字體加粗:<b>寫上你想寫的字</b>
字體斜體:<i>寫上你想寫的字</i>
字體下劃線: <u>寫上你想寫的字</u>
字體刪除線: <s>寫上你想寫的字</s>
字體加大: <big>寫上你想寫的字</big>
字體控制大小:<h1>寫上你想寫的字</h1> (其中字體大小可從h1-h5,h1最大,h5最小)
更改字體顏色:<font color="#value">寫上你想寫的字</font>(其中value值在000000與ffffff(16位進制)之間
消除連接的下劃線:<a href="相關地址" style="text-decoration:none">寫上你想寫的字</a>
貼音樂:<embed src="音樂地址" width="寬度" height="高度" autostart=false>
貼flash: <embed src="flash地址" width="寬度" height="高度">
貼影視文件:<img dynsrc="文件地址" width="寬度" height="高度" start=mouseover>
換行:<br>
段落:<p>段落</p>
原始文字樣式:<pre>正文</pre>
換帖子背景:<body background="背景圖片地址">
固定帖子背景不隨滾動條滾動:<body background="背景圖片地址" body bgproperties=fixed>
定製帖子背景顏色:<body bgcolor="#value">(value值見10)
帖子背景音樂:<bgsound="背景音樂地址" loop=infinite>
貼網頁:<iframe. src="相關地址" width="寬度" height="高度"></iframe>

HTML常用代碼之:常常會遇到的問題

點擊關閉窗口
<a href="javascript.:top.window.close();">點擊關閉窗口</a>!

請問如何去掉主頁右面的滾動條?
<body scroll="no">

<body style="overflow-y:hidden">

如何做到讓一個網頁自動關閉.
<html>

<head>
<OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<param name="Command" value="Close">
</object>
</head>
<body >
這個窗口會在10秒過後自動關閉,而且不會出現提示. </body>

如何在不刷新頁面的情況下刷新css?
<style>
button{ color:#000000;}
</style>
<button nclick=document.styleSheets[0].rules[0].style.color=『『『『red『『『『>點擊按鈕直接修改style標簽里button選擇符使按鈕改為紅色</button>

請問如何讓網頁自動刷新?
在head部記入<META. HTTP-EQUIV="Refresh" c>其中20為20秒後自動刷新,你可以更改為任意值。
如何讓頁面自動刷新?
方法一,用refresh
HTML 代碼片段如下:
<head>
<meta. http-equiv="refresh" c>
</head>
5表示刷新時間
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
方法二,使用setTimeout控制
<img src=/logo.gif>
<script>
function rl(){
document.location.reload()
}
setTimeout(rl,2000)
</SCRIPT>

如何讓超鏈接沒有下劃線
在源代碼中的<HEAD>…</HEAD>之間輸入如下代碼:
<style. type="text/css"> <!--
a { text-decoration: none}
--> </style>

請問如何去掉IE的上下滾動條?
<body style=『『『『overflow:scroll;overflow-y:hidden『『『『>
</body>

怎樣才能把RealPlayer文件在網頁做一個試聽連接?
<embed height=25src=51js.rm type=audio/x-pn-realaudio-plugin width=50 autostart="false" c>

如何用html實現瀏覽器上後退按鈕的功能?
<a href="java script.:history.go(-1)">點擊後退</a>
或者
<script> history.back() </SCRIPT>

HTML常用代碼之:你不一定知道的技巧

ncontextmenu="window.event.returnValue=false" 將徹底屏蔽滑鼠右鍵
<table borderncontextmenu=return(false)><td>no</table> 可用於Table

<body nselectstart="return false"> 取消選取、防止復制

onpaste="return false" 不準粘貼

on="return false;" ncut="return false;" 防止復制

<link rel="Shortcut Icon"href="favicon.ico"> IE地址欄前換成自己的圖標

<link rel="Bookmark"href="favicon.ico"> 可以在收藏夾中顯示出你的圖標

<inputstyle="ime-mode:disabled"> 關閉輸入法

永遠都會帶著框架
<script. language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm為框架網頁
// --></script>

防止被人frame.
<SCRIPT. LANGUAGE=JAVASCRIPT><!--
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>

網頁將不能被另存為
<noscript><iframe.src=*.html></iframe></noscript>

查看網頁源代碼
<input type=button value=查看網頁源代碼
onclick="window.location = "view-source:"+"http://www.w3cschool.cn"">

刪除時確認
<a href="javascript:if(confirm("確實要刪除嗎?"))location="boos.asp? &areyou=刪除&page=1"">刪除</a>

屏蔽功能鍵Shift,Alt,Ctrl
<script>
function look(){
if(event.shiftKey)
alert("禁止按Shift鍵!");//可以換成ALTCTRL
}
document.onkeydown=look;
</script>

網頁不會被緩存
<META. HTTP-EQUIV="pragma" CONTENT="no-cache">
<META. HTTP-EQUIV="Cache-Control"CONTENT="no-cache, must-revalidate">
<META. HTTP-EQUIV="expires"CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META. HTTP-EQUIV="expires"CONTENT="0">

怎樣讓表單沒有凹凸感?
<input type=text style="border:1 solid #000000">
<input type=text style="border-left:none;border-right:none; border -top:none; border-bottom: 1 solid#000000"></textarea>

不要滾動條?
讓豎條沒有:
<body style="overflow:scroll;overflow-y:hidden">
</body>
讓橫條沒有:
<body style="overflow:scroll;overflow-x:hidden">
</body>
兩個都去掉?更簡單了
<body scroll="no">
</body>

怎樣去掉圖片鏈接點擊後,圖片周圍的虛線?
<a href="#"nFocus="this.blur()"><img src="logo.jpg"border=0></a>

電子郵件處理提交表單
<form. name="form1"method="post" action="mailt****@***.com"enctype="text/plain">
<input type=submit>
</form>

在打開的子窗口刷新父窗口的代碼里如何寫?
window.opener.location.reload()

如何設定打開頁面的大小
<body nload="top.resizeTo(300,200);">
打開頁面的位置<bodynload="top.moveBy(300,200);">

在頁面中如何加入不是滿鋪的背景圖片,拉動頁面時背景圖不動
<STYLE>
body
{background-image:url(logo.gif); background-repeat:no-repeat;
background-position:center;background-attachment: fixed}
</STYLE>

檢查一段字元串是否全由數字組成
<script. language="Javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

獲得一個窗口的大小
document.body.clientWidth; document.body.clientHeight

怎麼判斷是否是字元
if (/[^/x00-/xff]/g.test(s)) alert("含有漢字");
else alert("全是字元");

TEXTAREA自適應文字行數的多少
<textarea rows=1 name=s1 cols=27npropertychange="this.style.posHeight=this.scrollHeight">
</textarea>

日期減去天數等於第二個日期
<script. language=Javascript>
function cc(dd,dadd)
{
//可以加上錯誤處理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() +1) + "月" + a.getDate() + "日")
} cc("12/23/2002",2)
</script>

選擇了哪一個Radio
<HTML><script. language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio"value="style" checked>Style.
<INPUT name="radio1" type="radio"value="barcode">Barcode
<INPUT type="button" value="check"nclick="checkme()">
</BODY></HTML>

腳本永不出錯
<SCRIPT. LANGUAGE="JavaScript">
<!-- Hide function killErrors(){return true;} window.onerror = killErrors;// -->
</SCRIPT>

ENTER鍵可以讓游標移到下一個輸入框
<input nkeydown="if(event.keyCode==13)event.keyCode=9">

Ⅱ 圖片格式jpg、gif、jpeg、png,bmp分別是什麼意思,

JPG格式是最常用的圖像文件格式,由一個軟體開發聯合會組織制定,是一種有損壓縮格式,能夠將圖像壓縮在很小的儲存空間,圖像中重復或不重要的資料會被丟失,因此容易造成圖像數據的損傷。尤其是使用過高的壓縮比例,將使最終解壓縮後恢復的圖像質量明顯降低,

如果追求高品質圖像,不宜採用過高壓縮比例。

但是JPEG壓縮技術十分先進,它用有損壓縮方式去除冗餘的圖像數據,在獲得極高的壓縮率的同時能展現十分豐富生動的圖像,換句話說,就是可以用最少的磁碟空間得到較好的圖像品質。

而且JPEG是一種很靈活的格式,具有調節圖像質量的功能,允許用不同的壓縮比例對文件進行壓縮,支持多種壓縮級別,壓縮比率通常在10:1到40:1之間,壓縮比越大,品質就越低;相反地,壓縮比越小,品質就越好。比如可以把1.37Mb的BMP點陣圖文件壓縮至20.3KB。當然也可以在圖像質量和文件尺寸之間找到平衡點。

JPEG格式壓縮的主要是高頻信息,對色彩的信息保留較好,適合應用於互聯網,可減少圖像的傳輸時間,可以支持24bit真彩色,也普遍應用於需要連續色調的圖像。

GIF 是用於壓縮具有單調顏色和清晰細節的圖像(如線狀圖、徽標或帶文字的插圖)的標准格式。
GIF分為靜態GIF和動畫GIF兩種,支持透明背景圖像,適用於多種操作系統,「體型」很小,網上很多小動畫都是GIF格式。其實GIF是將多幅圖像保存為一個圖像文件,從而形成動畫,所以歸根到底GIF仍然是圖片文件格式。但GIF只能顯示256色。
GIF主要分為兩個版本,即GIF 89a和GIF 87a:
GIF 87a:是在1987年制定的版本
GIF 89a:是1989年制定的版本。在這個版本中,為GIF文檔擴充了圖形控制區塊、備注、說明、應用程序編程介面等四個區塊,並提供了對透明色和多幀動畫的支持
GIF格式自1987年由CompuServe公司引入後,因其體積小而成像相對清晰,特別適合於初期慢速的互聯網,而從此大受歡迎。它採用無損壓縮技術,只要圖像不多於256色,則可既減少文件的大小,又保持成像的質量。(當然,現在也存在一些hack技術,在一定的條件下克服256色的限制,具體參見真彩色)然而,256色的限制大大局限了GIF文件的應用范圍,如彩色相機等。(當然採用無損壓縮技術的彩色相機照片亦不適合通過網路傳輸。)另一方面,在高彩圖片上有著不俗表現的JPG格式卻在簡單的折線上效果差強人意。因此GIF格式普遍適用於圖表,按鈕等等只需少量顏色的圖像(如黑白照片)。

PNG是20世紀90年代中期開始開發的圖像文件存儲格式,其目的是企圖替代GIF和TIFF文件格式,同時增加一些GIF文件格式所不具備的特性。流式網路圖形格式(Portable Network Graphic Format,PNG)名稱來源於非官方的「PNG's Not GIF」,是一種點陣圖文件(bitmap file)存儲格式,讀成「ping」。PNG用來存儲灰度圖像時,灰度圖像的深度可多到16位,存儲彩色圖像時,彩色圖像的深度可多到48位,並且還可存儲多到16位的α通道數據。PNG使用從LZ77派生的無損數據壓縮演算法
PNG圖片文件一般應用於JAVA程序中,或網頁或S60程序中是因為它壓縮比高,生成文件容量小。
使用彩色查找表或者叫做調色板可支持256種顏色的彩色圖像。
流式讀/寫性能(streamability):圖像文件格式允許連續讀出和寫入圖像數據,這個特性很適合於在通信過程中生成和顯示圖像。
逐次逼近顯示(progressive display):這種特性可使在通信鏈路上傳輸圖像文件的同時就在終端上顯示圖像,把整個輪廓顯示出來之後逐步顯示圖像的細節,也就是先用低解析度顯示圖像,然後逐步提高它的解析度。
透明性(transparency):這個性能可使圖像中某些部分不顯示出來,用來創建一些有特色的圖像。
輔助信息(ancillary information):這個特性可用來在圖像文件中存儲一些文本注釋信息。
獨立於計算機軟硬體環境。
使用無損壓縮。
PNG文件格式中要增加下列GIF文件格式所沒有的特性:
每個像素為48位的真彩色圖像。
每個像素為16位的灰度圖像。
可為灰度圖和真彩色圖添加α通道。
添加圖像的γ信息。
使用循環冗餘碼(cyclic rendancy code,CRC)檢測損害的文件。
加快圖像顯示的逐次逼近顯示方式。
標準的讀/寫工具包。
可在一個文件中存儲多幅圖像。

BMP是一種與硬體設備無關的圖像文件格式,使用非常廣。它採用位映射存儲格式,除了圖像深度可選以外,不採用其他任何壓縮,因此,BMP文件所佔用的空間很大。BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲數據時,圖像的掃描方式是按從左到右、從下到上的順序。
由於BMP文件格式是Windows環境中交換與圖有關的數據的一種標准,因此在Windows環境中運行的圖形圖像軟體都支持BMP圖像格式。
典型的BMP圖像文件由四部分組成:
1:點陣圖文件頭數據結構,它包含BMP圖像文件的類型、顯示內容等信息;
2:點陣圖信息數據結構,它包含有BMP圖像的寬、高、壓縮方法,以及定義顏色等信息;
3:調色板,這個部分是可選的,有些點陣圖需要調色板,有些點陣圖,比如真彩色圖(24位的BMP)就不需要調色板;
4:點陣圖數據,這部分的內容根據BMP點陣圖使用的位數不同而不同,在24點陣圖中直接使用RGB,而其他的小於24位的使用調色板中顏色索引值。
點陣圖的類型:
點陣圖一共有兩種類型,即:設備相關點陣圖(DDB)和設備無關點陣圖(DIB)。DDB點陣圖在早期的Windows系統(Windows 3.0以前)中是很普遍的,事實上它也是唯一的。然而,隨著顯示器製造技術的進步,以及顯示設備的多樣化,DDB點陣圖的一些固有的問題開始浮現出來了。比如,它不能夠存儲(或者說獲取)創建這張圖片的原始設備的解析度,這樣,應用程序就不能快速的判斷客戶機的顯示設備是否適合顯示這張圖片。為了解決這一難題,微軟創建了DIB點陣圖格式。
設備無關點陣圖 (Device-Independent Bitmap)
DIB點陣圖包含下列的顏色和尺寸信息:
* 原始設備(即創建圖片的設備)的顏色格式。
* 原始設備的解析度。
* 原始設備的調色板
* 一個位數組,由紅、綠、藍(RGB)三個值代表一個像素。
* 一個數組壓縮標志,用於表明數據的壓縮方案(如果需要的話)。
以上這些信息保存在BITMAPINFO結構中,該結構由BITMAPINFOHEADER結構和兩個或更多個RGBQUAD結構所組成。BITMAPINFOHEADER結構所包含的成員表明了圖像的尺寸、原始設備的顏色格式、以及數據壓縮方案等信息。RGBQUAD結構標識了像素所用到的顏色數據。
DIB點陣圖也有兩種形式,即:底到上型DIB(bottom-up),和頂到下型DIB(top-down)。底到上型DIB的原點(origin)在圖像的左下角,而頂到下型DIB的原點在圖像的左上角。如果DIB的高度值(由BITMAPINFOHEADER結構中的biHeight成員標識)是一個正值,那麼就表明這個DIB是一個底到上型DIB,如果高度值是一個負值,那麼它就是一個頂到下型DIB。注意:頂到下型的DIB點陣圖是不能被壓縮的。
點陣圖的顏色格式是通過顏色面板值(planes)和顏色位值(bitcount)計算得來的,顏色面板值永遠是1,而顏色位值則可以是1、4、8、16、24、32其中的一個。如果它是1,則表示點陣圖是一張單色點陣圖(譯者註:通常是黑白點陣圖,只有黑和白兩種顏色,當然它也可以是任意兩種指定的顏色),如果它是4,則表示這是一張VGA點陣圖,如果它是8、16、24、或是32,則表示該點陣圖是其他設備所產生的點陣圖。如果應用程序想獲取當前顯示設備(或列印機)的顏色位值(或稱位深度),可調用API函數GetDeviceCaps(),並將第二個參數設為BITSPIXEL即可。
顯示設備的解析度是以每米多少個像素來表明的,應用程序可以通過以下三個步驟來獲取顯示設備或列印機的水平解析度:
1. 調用GetDeviceCaps()函數,指定第二個參數為HORZRES。
2. 再次調用GetDeviceCaps()函數,指定第二個參數為HORZSIZE。
3. 用第一個返回值除以第二個返回值。即:DetDeviceCaps(hDC,HORZRES)/GetDeviceCaps(hDC,HORZSIZE);
應用程序也可以使用相同的三個步驟來獲取設備的垂直解析度,不同之處只是要將HORZRES替換為VERTRES,把HORZSIZE替換為VERTSIZE,即可。
調色板是被保存在一個RGBQUAD結構的數組中,該結構指出了每一種顏色的紅、綠、藍的分量值。位數組中的每一個索引都對應於一個調色板項(即一個RGBQUAD結構),應用程序將根據這種對應關系,將像素索引值轉換為像素RGB值(真實的像素顏色)。應用程序也可以通過調用GetDeviceCaps()函數來獲取當前顯示設備的調色板尺寸(將該函數的第二個參數設為NUMCOLORS即可)。
Win32 API支持位數據的壓縮(只對8位和4位的底到上型DIB點陣圖)。壓縮方法是採用運行長度編碼方案(RLE),RLE使用兩個位元組來描述一個句法,第一個位元組表示重復像素的個數,第二個位元組表示重復像素的索引值。有關壓縮點陣圖的詳細信息請參見對BITMAPINFOHEADER結構的解釋。
應用程序可以從一個DDB點陣圖創建出一個DIB點陣圖,步驟是,先初始化一些必要的結構,然後再調用GetDIBits()函數。不過,有些顯示設備有可能不支持這個函數,你可以通過調用GetDeviceCaps()函數來確定一下(GetDeviceCaps()函數在調用時指定RC_DI_BITMAP作為RASTERCAPS的標志)。
應用程序可以用DIB去設置顯示設備上的像素(譯者註:也就是顯示DIB),方法是調用SetDIBitsToDevice()函數或調用StretchDIBits()函數。同樣,有些顯示設備也有可能不支持以上這兩個函數,這時你可以指定RC_DIBTODEV作為RASTERCAPS標志,然後調用GetDeviceCaps()函數來判斷該設備是否支持SetDIBitsToDevice()函數。也可以指定RC_STRETCHDIB作為RASTERCAPS標志來調用GetDeviceCaps()函數,來判斷該設備是否支持StretchDIBits()函數。
如果應用程序只是要簡單的顯示一個已經存在的DIB點陣圖,那麼它只要調用SetDIBitsToDevice()函數就可以。比如一個電子表格軟體,它可以打開一個圖表文件,在窗口中簡單的調用SetDIBitsToDevice()函數,將圖形顯示在窗口中。但如果應用程序要重復的繪制點陣圖的話,則應該使用BitBlt()函數,因為BitBlt()函數的執行速度要比SetDIBitsToDevice()函數快很多。
設備相關點陣圖 (Device-Dependent Bitmaps)
設備相關點陣圖(DDB)之所以現在還被系統支持,只是為了兼容舊的Windows 3.0軟體,如果程序員現在要開發一個與點陣圖有關的程序,則應該盡量使用或生成DIB格式的點陣圖。
DDB點陣圖是被一個單個結構BITMAP所描述,這個結構的成員標明了該點陣圖的寬度、高度、設備的顏色格式等信息。
DDB點陣圖也有兩種類型,即:可廢棄的(discardable)DDB和不可廢棄的(nondiscardable)DDB。可廢棄的DDB點陣圖就是一種當系統內存缺乏,並且該點陣圖也沒有被選入設備描述表(DC)的時候,系統就會把該DDB點陣圖從內存中清除(即廢棄)。不可廢棄的DDB則是無論系統內存多少都不會被系統清除的DDB。API函數CreateDiscardableBitmap()函數可用於創建可廢棄點陣圖。而函數CreateBitmap()、CreateCompatibleBitmap()、和CreateBitmapIndirect()可用於創建不可廢棄的點陣圖。
應用程序可以通過一個DIB點陣圖而創建一個DDB點陣圖,只要先初始化一些必要的結構,然後再調用CreateDIBitmap()函數就可以。如果在調用該函數時指定了CBM_INIT標志,那麼這一次調用就等價於先調用CreateCompatibleBitmap()創建當前設備格式的DDB點陣圖,然後又調用SetDIBits()函數轉換DIB格式到DDB格式。(可能有些設備並不支持SetDIBits()函數,你可以指定RC_DI_BITMAP作為RASTERCAPS的標志,然後調用GetDeviceCaps()函數來判斷一下)。
對應的數據結構:
1:BMP文件組成
BMP文件由文件頭、點陣圖信息頭、顏色信息和圖形數據四部分組成。
2:BMP文件頭(14位元組)
BMP文件頭數據結構含有BMP文件的類型、文件大小和點陣圖起始位置等信息。
其結構定義如下:
typedef struct tagBITMAPFILEHEADER
{
WORDbf Type; // 點陣圖文件的類型,必須為BM(0-1位元組)
DWORD bfSize; // 點陣圖文件的大小,以位元組為單位(2-5位元組)
WORD bfReserved1; // 點陣圖文件保留字,必須為0(6-7位元組)
WORD bfReserved2; // 點陣圖文件保留字,必須為0(8-9位元組)
DWORD bfOffBits; // 點陣圖數據的起始位置,以相對於點陣圖(10-13位元組)
// 文件頭的偏移量表示,以位元組為單位
} BITMAPFILEHEADER;
3:點陣圖信息頭(40位元組)
BMP點陣圖信息頭數據用於說明點陣圖的尺寸等信息。
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本結構所佔用位元組數(14-17位元組)
LONG biWidth; // 點陣圖的寬度,以像素為單位(18-21位元組)
LONG biHeight; // 點陣圖的高度,以像素為單位(22-25位元組)
WORD biPlanes; // 目標設備的級別,必須為1(26-27位元組)
WORD biBitCount;// 每個像素所需的位數,必須是1(雙色),(28-29位元組)
// 4(16色),8(256色)或24(真彩色)之一
DWORD biCompression; // 點陣圖壓縮類型,必須是 0(不壓縮),(30-33位元組)
// 1(BI_RLE8壓縮類型)或2(BI_RLE4壓縮類型)之一
DWORD biSizeImage; // 點陣圖的大小,以位元組為單位(34-37位元組)
LONG biXPelsPerMeter; // 點陣圖水平解析度,每米像素數(38-41位元組)
LONG biYPelsPerMeter; // 點陣圖垂直解析度,每米像素數(42-45位元組)
DWORD biClrUsed;// 點陣圖實際使用的顏色表中的顏色數(46-49位元組)
DWORD biClrImportant;// 點陣圖顯示過程中重要的顏色數(50-53位元組)
} BITMAPINFOHEADER;
4:顏色表
顏色表用於說明點陣圖中的顏色,它有若干個表項,每一個表項是一個RGBQUAD類型的結構,定義一種顏色。RGBQUAD結構的定義如下:
typedef struct tagRGBQUAD {
BYTE rgbBlue;// 藍色的亮度(值范圍為0-255)
BYTE rgbGreen; // 綠色的亮度(值范圍為0-255)
BYTE rgbRed; // 紅色的亮度(值范圍為0-255)
BYTE rgbReserved;// 保留,必須為0
} RGBQUAD;
顏色表中RGBQUAD結構數據的個數有biBitCount來確定:
當biBitCount=1,4,8時,分別有2,16,256個表項;
當biBitCount=24時,沒有顏色表項。
點陣圖信息頭和顏色表組成點陣圖信息,BITMAPINFO結構定義如下:
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; // 點陣圖信息頭
RGBQUAD bmiColors[1]; // 顏色表
} BITMAPINFO;
5:點陣圖數據
點陣圖數據記錄了點陣圖的每一個像素值,記錄順序是在掃描行內是從左到右,掃描行之間是從下到上。點陣圖的一個像素值所佔的位元組數:
當biBitCount=1時,8個像素佔1個位元組;
當biBitCount=4時,2個像素佔1個位元組;
當biBitCount=8時,1個像素佔1個位元組;
當biBitCount=24時,1個像素佔3個位元組;
Windows規定一個掃描行所佔的位元組數必須是
4的倍數(即以long為單位),不足的以0填充,
biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) & ~31) / 8) * bi.biHeight;
具體數據舉例:
如某BMP文件開頭:
4D42 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....
BMP文件可分為四個部分:點陣圖文件頭、點陣圖信息頭、彩色板、圖像數據陣列,在上圖中已用*分隔。
一、圖像文件頭
1)1:(這里的數字代表的是"字",即兩個位元組,下同)圖像文件頭。0x4D42=』BM』,表示是Windows支持的BMP格式。
2)2-3:整個文件大小。4690 0000,為00009046h=36934。
3)4-5:保留,必須設置為0。
4)6-7:從文件開始到點陣圖數據之間的偏移量。4600 0000,為00000046h=70,上面的文件頭就是35字=70位元組。
二、點陣圖信息頭
5)8-9:點陣圖圖信息頭長度。
6)10-11:點陣圖寬度,以像素為單位。8000 0000,為00000080h=128。
7)12-13:點陣圖高度,以像素為單位。9000 0000,為00000090h=144。
8)14:點陣圖的位面數,該值總是1。0100,為0001h=1。
9)15:每個像素的位數。有1(單色),4(16色),8(256色),16(64K色,高彩色),24(16M色,真彩色),32(4096M色,增強型真彩色)。1000為0010h=16。
10)16-17:壓縮說明:有0(不壓縮),1(RLE 8,8位RLE壓縮),2(RLE 4,4位RLE壓縮,3(Bitfields,位域存放)。RLE簡單地說是採用像素數+像素值的方式進行壓縮。T408採用的是位域存放方式,用兩個位元組表示一個像素,位域分配為r5b6g5。圖中0300 0000為00000003h=3。
11)18-19:用位元組數表示的點陣圖數據的大小,該數必須是4的倍數,數值上等於(≥點陣圖寬度的最小的4的倍數)×點陣圖高度×每個像素位數。0090 0000為00009000h=80×90×2h=36864。
12)20-21:用象素/米表示的水平解析度。A00F 0000為0000 0FA0h=4000。
13)22-23:用象素/米表示的垂直解析度。A00F 0000為0000 0FA0h=4000。
14)24-25:點陣圖使用的顏色索引數。設為0的話,則說明使用所有調色板項。
15)26-27:對圖象顯示有重要影響的顏色索引的數目。如果是0,表示都重要。
三、彩色板
16)28-....(不確定):彩色板規范。對於調色板中的每個表項,用下述方法來描述RGB的值:
1位元組用於藍色分量
1位元組用於綠色分量
1位元組用於紅色分量
1位元組用於填充符(設置為0)
對於24-位真彩色圖像就不使用彩色板,因為點陣圖中的RGB值就代表了每個象素的顏色。
如,彩色板為00F8 0000 E007 0000 1F00 0000 0000 0000,其中:
00FB 0000為FB00h=1111100000000000(二進制),是藍色分量的掩碼。
E007 0000為 07E0h=0000011111100000(二進制),是綠色分量的掩碼。
1F00 0000為001Fh=0000000000011111(二進制),是紅色分量的掩碼。
0000 0000總設置為0。
將掩碼跟像素值進行「與」運算再進行移位操作就可以得到各色分量值。看看掩碼,就可以明白事實上在每個像素值的兩個位元組16位中,按從高到低取5、6、5位分別就是r、g、b分量值。取出分量值後把r、g、b值分別乘以8、4、8就可以補齊第個分量為一個位元組,再把這三個位元組按rgb組合,放入存儲器(同樣要反序),就可以轉換為24位標准BMP格式了。
四、圖像數據陣列
17)27(無調色板)-...:每兩個位元組表示一個像素。陣列中的第一個位元組表示點陣圖左下角的象素,而最後一個位元組表示點陣圖右上角的象素。
五、存儲演算法
BMP文件通常是不壓縮的,所以它們通常比同一幅圖像的壓縮圖像文件格式要大很多。例如,一個800×600的24位幾乎占據1.4MB空間。因此它們通常不適合在網際網路或者其它低速或者有容量限制的媒介上進行傳輸。 根據顏色深度的不同,圖像上的一個像素可以用一個或者多個位元組表示,它由n/8所確定(n是位深度,1位元組包含8個數據位)。圖片瀏覽器等基於位元組的ASCII值計算像素的顏色,然後從調色板中讀出相應的值。更為詳細的信息請參閱下面關於點陣圖文件的部分。 n位2n種顏色的點陣圖近似位元組數可以用下面的公式計算: BMP文件大小約等於 54+4*2的n次方+(w*h*n)/8
,其中高度和寬度都是像素數。 需要注意的是上面公式中的54是點陣圖文件的文件頭,是彩色調色板的大小。另外需要注意的是這是一個近似值,對於n位的點陣圖圖像來說,盡管可能有最多2n中顏色,一個特定的圖像可能並不會使用這些所有的顏色。由於彩色調色板僅僅定義了圖像所用的顏色,所以實際的彩色調色板將小於。 如果想知道這些值是如何得到的,請參考下面文件格式的部分。 由於存儲演算法本身決定的因素,根據幾個圖像參數的不同計算出的大小與實際的文件大小將會有一些細小的差別。

Ⅲ 程序員學生必備的六大軟體

程序員學生必備的六大軟體

程序員六大必備軟體

99%的人都沒見過

1.Giphy Capture

Giphy Cap tire是一個專為Man用戶准備的一款GIF制

作器,錯做非常簡單,除了可以錄屏之外,還可以

對生成的GIF進行編輯, 像大小調節、長度控制、

播放的順序等,如果你想寫文章時,想要在文章插

入一些GIF動圖來讓你的代碼和程序更好理解, 這

款工具就很適合

2.json editor online

json editor online是一個簡單、靈活、可視化在線的

JSON編輯器, 支持差異化對比,可查看、編輯和

格式化JSON數據, is on格式是開發中比較常見的,

is on閱讀和格式化就是一個常見的工具, 用了這個

工具,其他的突然就不香了!

3.oh-my-zsh

m命令行是程序員的最愛, 所以這款替代bash工具

必須得拿出來, 索然我們的bash shell功能也很好了

。但還是略顯樸素,沒有那麼的酷炫,所以這個

oh-my-zsh就值得一提, 都說它是最好用的shell,

沒有之一,包含

275+插件、150+主題、Git Hub 113, 259星數, 從這

一系列的數字中就能夠感覺到這個shell工具的完善

以及強大之處,小白程序員也可以用,高端大氣上

檔次!

4.Process On

Process on是一款在線作圖工具, 可製作思維導圖、

流程圖、UML圖、界面原型設計、組織結構圖等等

上手也很簡單,並且免費、免安裝,在線即可操

作,大家都知道身為程序員,必須時刻保持思路清

晰,這樣代碼寫出來就是分分鍾的事情,所以作圖

是很有必要的,反正這個工具是真香!

5.Copy Translator

Copy Translator是一款非常出色的翻譯軟體, 免費且

開源,支持幾十種不同語言的翻譯,不管你是科研

人員還是演算法工程師(當然英文很好的可以忽略)這

款翻譯軟體都很適合,相比其他翻譯軟體

Copy Transat or可以解決一些多餘的斷句和換行帶來

的亂碼問題,也會更高效,

只需復制文本到粘貼板,下一秒即可查看翻譯結果

,提高工作效率。

6.VisualStudiop Code

VisualStudio Code是一個運行與MacOSX、Windows

和Linux之上的, 針對於編寫現代Web和雲應用的跨

平台源代碼編輯器,包含所有主流的開發語言的語

法高亮、只能代碼補全、自定義熱鍵、括弧匹配、

代碼片段、代碼對比Diff、Git等特徵, 支持插件擴

展, 可以通過安裝插件來支持C++、C#、Python、

PHP、Java等語言。同時針對網頁開發和雲端應用開

發也做了優化。




閱讀全文

與程序員賽車的gif相關的資料

熱點內容
哪個app陪伴運動 瀏覽:879
學編程每天六點起床 瀏覽:951
烏鴉搜索演算法復現 瀏覽:74
android3d切換 瀏覽:750
資源管理器選定文件夾 瀏覽:989
分數公約數的演算法 瀏覽:588
yii2引入php文件 瀏覽:563
華為p20方舟編譯器評測 瀏覽:186
pntp伺服器是什麼 瀏覽:654
程序員培訓多長時間 瀏覽:556
求aaa的和python 瀏覽:193
python因子分析代碼 瀏覽:646
python啟動時提示沒有入口 瀏覽:680
linux中oracle監聽 瀏覽:621
程序員高價值朋友圈 瀏覽:488
雲伺服器做淘寶店 瀏覽:804
程序員判3年緩3年 瀏覽:911
伺服器雲監控系統 瀏覽:653
ios暴力解壓軟體 瀏覽:431
可以搜簡便演算法的軟體 瀏覽:202