十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
'模塊中
創(chuàng)新互聯(lián)提供網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì),品牌網(wǎng)站制作,廣告投放等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,十載的網(wǎng)站開(kāi)發(fā)和建站經(jīng)驗(yàn),助力企業(yè)信息化建設(shè),成功案例突破成百上千,是您實(shí)現(xiàn)網(wǎng)站建設(shè)的好選擇.
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) _
As Long
Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Declare Function BitBlt Lib "gdi32" _
(ByVal hDestDC As Long, ByVal x As Long, _
ByVal y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal hSrcDC As Long, _
ByVal xSrc As Long, ByVal ySrc As Long, _
ByVal dwRop As Long) As Long
'form1中
Private Sub Command1_Click()
Dim hDCtmp As Long, picWidth As Double, picHeight As Double
Dim x As Double
Dim y As Double
x = Val(Text2.Text)
y = Val(Text3.Text)
picWidth = Val(Text3.Text)
picHeight = Val(Text4.Text)
hDCtmp = GetDC(0)
BitBlt Picture1.hdc, 0, 0, picWidth, picHeight, hDCtmp, x, y, vbSrcCopy
ReleaseDC 0, hDCtmp
End Sub
目的: 將屏幕按照指定坐標(biāo)和大小進(jìn)行截取成圖,在picture1顯示
問(wèn)題: 大小是相同了,為什么截取的坐標(biāo)不對(duì),只是屏幕上的左上
相信大家都用過(guò)QQ截圖功能。不過(guò)很多人并沒(méi)有真正掌握好它的用法。將QQ截圖與其它截屏和制圖軟件配合使用,會(huì)有意想不到的效果。
獲取顏色的RGB值
我們?cè)诰庉媹D片或網(wǎng)頁(yè)的時(shí)候,經(jīng)常需要獲取某種顏色的“RGB值”,所以很多人都安裝了第三方的顏色吸取工具。其時(shí)用QQ截圖鍵即可獲取屏幕上任意顏色的RGB值。
當(dāng)按下“Ctrl+Shift+A”彈出“截圖”提示框時(shí),提示框中的“當(dāng)前像素RGB”即為當(dāng)前鼠標(biāo)屏幕位置的顏色RGB值,將鼠標(biāo)移動(dòng)到你想查看的屏幕顏色上即可獲得相應(yīng)的RGB值(如圖1)。
圖1精確截取圖片大小
有時(shí)我們對(duì)要使用的截圖尺寸有嚴(yán)格要求,比如論壇簽名或QQ頭像等。用QQ截圖鍵可以按尺寸精確截取,一步到位無(wú)需再進(jìn)行后期裁剪了。
按下QQ截圖鍵,按住鼠標(biāo)不放選取截取范圍時(shí),在鼠標(biāo)上方會(huì)有一個(gè)信息框顯示當(dāng)前范圍的詳細(xì)信息,其中“矩形大小”就是以像素來(lái)表示的圖片的尺寸大小,括號(hào)內(nèi)的數(shù)字分別表示的是長(zhǎng)和高(如圖2)。松開(kāi)鼠標(biāo)調(diào)整截圖框時(shí),對(duì)照“矩形大小”就可以按需要的尺寸來(lái)精確截圖范圍,然后用鼠標(biāo)點(diǎn)住截圖框?qū)⒔貓D框拖到要截取的圖片上,雙擊即可獲得所需尺寸的圖片了。
圖2圖片拼貼好幫手
大部分的截圖軟件一次只能截取一張圖片,當(dāng)要截取多張圖片并進(jìn)行拼貼組合時(shí),就需要一張一張截取全部保存后再進(jìn)行拼貼操作,非常麻煩。
我們知道用QQ截圖鍵截取的圖片可以在任一個(gè)可以粘貼圖片的程序中使用,這樣只需用截圖軟件進(jìn)行一次截圖操作,剩下的圖片用QQ截圖鍵來(lái)截取,然后依次粘貼到截圖軟件的窗口中即可快速進(jìn)行拼貼操作了,是不是很方便啊。
小提示:QQ截圖鍵無(wú)需打開(kāi)聊天窗口即可使用,截取的圖片在任一可粘貼圖片的程序窗口中如畫圖、Word等,使用“粘貼”命令即可使用
用位圖對(duì)象的Clone 方法就可以獲取圖片某個(gè)區(qū)域成一個(gè)新的位圖對(duì)象,下面例子:
Private?Sub?Form1_Click(sender?As?Object,?e?As?EventArgs)?Handles?Me.Click
Dim?img?As?New?Bitmap("d:\015.jpg")
Dim?rc?As?Rectangle?=?New?Rectangle(500,?500,?600,?600)???'起點(diǎn)和長(zhǎng)寬
Dim?newImg?As?Bitmap?=?img.Clone(rc,?Imaging.PixelFormat.Format32bppArgb)
Me.CreateGraphics.DrawImage(newImg,?0,?0)
End?Sub
你要確定每個(gè)狀態(tài)的大小是一樣的才可以:
Public Bitmap CutImage(ByVal start As Point, ByVal end As Point, ByVal b As Bitmap)
Dim f As New Bitmap(end.X - start.X + 1, end.Y - start.Y + 1)
For i As Integer = start.X To end.X + 1
For j As Integer = start.Y To end.Y + 1
Dim c As Color = b.GetPixel(i, j)
f.SetPixel(i - start.X, j - start.Y, c)
Next
Next
Return f
End Sub
這個(gè)函數(shù)就可以用于裁剪圖像,返回裁剪后的圖像,start是開(kāi)始裁剪的位置,end是結(jié)束裁剪的位置,b是要裁剪的圖像,假如你的這些按鈕每個(gè)寬30,高20,你就可以用
PictureBox1.Image = CutImage(New Point(第n - 1個(gè)按鈕 * 30, 0), New Point(第n個(gè)按鈕 * 30, 20), 按鈕存在的位圖)