كۆرۈش: 708|ئىنكاس: 2

رەسىمگە تامغا بېسىش پىروگىراممىسى ئەسلى كودى

[ئۇلانما كۆچۈرۈش]
رەسىمگە تامغا بېسىش پىروگىراممىسى ئەسلى كودى
ئادەتتە تور بېكەتلەردە رەسىم ھۆججەتلىرىگە ئۆز تور بېكىتىنىڭ لوگو رەسىمىنى تامغا قىلىپ بېسۋالغانلىقىنى كۈرىمىز ،خەنزۇچىدە بۇنى (水印) دەپ ئاتايدۇ .تۆۋەندىكى پىروگىرامما كودى بولسا vb  ئارقىلىق شۇ خىل ئىقتىدارنى ئەمەلگە ئاشۇرۇش كودى .
قەدەم باسقۇچلىرى :
vb دا يېڭى كۆزنەكتىن بىرنى قۇرۇپ كۆزنەك ئۈستىگە pictrebox دىن 3 نى .command تىن 2 نى قۇرىمىز .
ئاندىن pictrebox  نىڭ خاسلىقلىرىنى تۆۋەندىكىدەك تەڭشەيمىز:
1.ScaleMode خاسلىقىنى 3 قىلىپ تەڭشەيمىز .رولى .ئوبىكىتنىڭ چوڭ-چىكىكلىكىنىڭ بىرلىكىنى بەلگىلەيدۇ .3 پىكسىل بۇيىچە بۇلىدىغانلىقىنى ئىپادىلەيدۇ .
2.AutoRedraw خاسلىقىنى true قىلىپ تەڭشەيمىز. رولى :تامغا قۇيۇلغان يېڭى رەسىمنى ئۇزۇنغىچە ساقلاش .(ئەگەر بۇ خاسلىقىنى تەڭشىمىسىڭىز تامغا قۇيۇلغان رەسىم ھاسىل بۇلۇپلا يوقاپ كىتىدۇ )
3.Picture1 ۋە Picture2 لەرگە ئايرىم ئايرىم خالىغان رەسىم ھۆججىتىدىن بىردىن كىرگۈزۈڭ .Picture1 گە سەل چوڭاراق رەسىمنى Picture2 گە سەل كىچىكرەك رەسىمنى كىرگۈزۈڭ ،چۈنكى بىز دەل Picture2 دىكى رەسىمنى Picture1 نى ئۈستىگە تامغا شەكلىدە چىقىرىمىز .بولمىسا ھاسىل بولغان رەسىم كۈرۈمسىز چىقىپ قالىدۇ .
ئاندىن تۆۋەندىكى كودنى كود يىزىش رايۇنىغا كۈچۈرۈپ چاپلاڭ:
  1. Private Declare Function SetPixelV Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

  2. Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long



  3. Private Sub Command1_Click()     '加水印图像

  4. Dim transparence As Integer      '水印透明度

  5. Dim x1 As Integer, y1 As Integer '水印图取点坐标

  6. Dim x2 As Integer, y2 As Integer '背景图上的水印位置坐标

  7. Dim c As Long

  8. Dim r1 As Integer, g1 As Integer, b1 As Integer

  9. Dim r2 As Integer, g2 As Integer, b2 As Integer



  10. transparence = 30                '此值在 10-90 之间,越大越透明

  11. y2 = (Picture1.Height - Picture2.Height) / 15 - 20



  12. For y1 = 0 To Picture2.ScaleHeight - 1

  13.   x2 = (Picture1.Width - Picture2.Width) / 15 - 20

  14.   For x1 = 0 To Picture2.ScaleWidth - 1

  15.   

  16.     c = GetPixel(Picture2.hdc, x1, y1) '从水印图像取点

  17.     r1 = c Mod 256

  18.     g1 = c \ 256 Mod 256

  19.     b1 = c \ 256 \ 256

  20.    

  21.     c = GetPixel(Picture1.hdc, x2, y2) '从背景图像取点

  22.     r2 = c Mod 256

  23.     g2 = c \ 256 Mod 256

  24.     b2 = c \ 256 \ 256

  25.    

  26.     r1 = r1 - transparence * (r1 - r2) / 100

  27.     g1 = g1 - transparence * (g1 - g2) / 100

  28.     b1 = b1 - transparence * (b1 - b2) / 100



  29.     SetPixelV Picture1.hdc, x2, y2, RGB(r1, g1, b1)

  30.     x2 = x2 + 1

  31.   Next

  32.   y2 = y2 + 1

  33. Next



  34. Picture1.Refresh

  35. End Sub





  36. Private Sub Command2_Click()     '加水印字符

  37. Dim transparence As Integer      '水印透明度

  38. Dim x1 As Integer, y1 As Integer '水印字符图取点坐标

  39. Dim x2 As Integer, y2 As Integer '背景图上的水印位置坐标

  40. Dim c1 As Long, c2 As Long

  41. Dim r1 As Integer, g1 As Integer, b1 As Integer

  42. Dim r2 As Integer, g2 As Integer, b2 As Integer

  43. Dim st As String



  44. transparence = 10

  45. y2 = (Picture1.Height - Picture3.Height) / 15 - 20

  46. st = "火花网站欢迎你!" '水印文字

  47. c2 = vbWhite      '文字颜色



  48. With Picture3

  49.   .FontSize = 14

  50.   .FontBold = True

  51.   .ForeColor = c2

  52.   .Width = .TextWidth(st) * 15 + 60

  53.   .Height = .TextHeight(st) * 15 + 60

  54.   .Cls

  55.   Picture3.Print st

  56.   .Refresh

  57. End With



  58. For y1 = 0 To Picture3.ScaleHeight - 1

  59.   x2 = (Picture1.Width - Picture3.Width) / 15 - 20

  60.   For x1 = 0 To Picture3.ScaleWidth - 1

  61.     c1 = GetPixel(Picture3.hdc, x1, y1) '从水印字符图取点

  62.     If c1 = c2 Then

  63.       r1 = c1 Mod 256

  64.       g1 = c1 \ 256 Mod 256

  65.       b1 = c1 \ 256 \ 256

  66.       

  67.       c1 = GetPixel(Picture1.hdc, x2, y2) '从背景图像取点

  68.       r2 = c1 Mod 256

  69.       g2 = c1 \ 256 Mod 256

  70.       b2 = c1 \ 256 \ 256

  71.    

  72.       r1 = r1 - transparence * (r1 - r2) / 100

  73.       g1 = g1 - transparence * (g1 - g2) / 100

  74.       b1 = b1 - transparence * (b1 - b2) / 100



  75.       SetPixelV Picture1.hdc, x2, y2, RGB(r1, g1, b1)

  76.     End If

  77.     x2 = x2 + 1

  78.   Next

  79.   y2 = y2 + 1

  80. Next



  81. Picture1.Refresh

  82. End Sub
مەزمۇننى كۆچۈرۈۋېلىش
مەزمۇننى كۆچۈرۈۋېلىشئەمدى ئايرىم-ئايرىم command1 ۋە command2 لەرنى بېسىپ پىروگىراممىنىڭ ئۈنۈمىنى كۈرۈپ باقساڭلار بۇلىدۇ ،picture2 دىكى رەسىم ۋە command2-click ھادىسىسىگە يىزىلغان ئۆزگەرگۈچى مىقدار st نىڭ قىممىتىنىڭ picture1 نىڭ ئوڭ ئاستى قىسمىغا چىققانلىقىنى كۈرەلەيسىلە.
تاما قۇيۇلدىغان رەسىم ۋە خەتنىڭ سۈزۈكلىك دەرىجىسىنى command1-click ۋە command2-click   دىكى transparence دىگەن ئۆزگەرگۈچى مىقدارنىڭ قىممىتىنى ئۆزگەرتىش ئارقىلىق تەڭشىگىلى بۇلىدۇ .
كود ئارىسىدا ئىزاھات بار ،شۇلارغا ئاساسەن بۇ كودلارنىڭ مەنىسى ۋە رولىنى  چۈشىنۋالساڭلار بۇلىدۇ .

baykax - بايقاش ئەسكەرتمىسى

ئالاھىدە ئاگاھلاندۇرۇش:

بايقاشتىكى ماتېرىياللارنى چۈشۈرۈپ ئىشلەتكىنىڭىز شۇ ماتېرىيالنىڭ سىزنىڭ بولۇپ قالغانلىقىنى بىلدۈرمەيدۇ. سىزنىڭ پەقەت پايدىلىنىش ھوقۇقىڭىز بولىدۇ. تور بىتىمىز تەمىنلىگەن ھەرقانداق بىر ماتىريالنى تور بىتىمىزنىڭ ماقۇللىقىنى ئالماي تۇرۇپ،ھەرقانداق بىر توربەت،بىلوگ،ياكى ھەقسىز تور دىسكىسى قاتارلىق ۋاستىلەردىن پايدلىنىپ شەخىسلەرنىڭ ئۆزئالدىغا تارقىتىشىغا يول قويۇلمايدۇ. ئەگەر مۇشۇنداق ئەھۋال بايقالسا مۇناسىپ قانۇنى جاۋاپكارلىقنى ئۆز ئۇستىڭىزگە ئالىسىز. باشقىلارنىڭ ئەمگىكىنى قەدىرلەڭ.

ياقتۇرىشىڭىز مۇمكىن؟

ئاپتور ۋە ئەڭ يېڭى 10 ئىنكاسقا مۇناسىۋەتلىك يېڭى تېمىلار

ۋاقتى: 2011-9-13 11:20:31|ھەممە قەۋەتنى كۆرۈش
يارايسىز! VB دا ھەقىقەتەن كارامىتىڭىز بار جۇمۇ سىزنىڭ!
ۋاقتى: 2014-3-2 11:04:47|ھەممە قەۋەتنى كۆرۈش
ئەسلى مۇنداق ئىشنى قىلغىلى بۇلىدىكەندە
ئانا تىلىمىزنى قەدىرلەپ، يوللاش كۇنۇپكىسىنى بېسىشتىن بۇرۇن ئىنكاس ئىملاسىنى تەكشۈرۈپ كۆرۈڭ. ئاپتۇماتىك ئىملا تەكشۈرۈش ئۈچۈن:بۇ يەرنى بېسىڭ

ئىنكاس يوللاش

كىرگەندىن كېيىن ئىنكاس يازالايسىز كىرىش | ئەزا بولىمەن

سەھىپە جۇغلانما قائىدىسى

بېكىتىمىزدىكى يازمىلار شۇ شەخىسنىڭ شەخسىي كۆز قارىشىغا ۋەكىللىك قىلىدۇ،بىكىتىمىز بىلەن مۇناسىۋەتسىز.مۇنبىرىمىز پەقەتلا پىكىر ئالماشتۇرۇش سورۇنى ھازىرلىغان.
بېكىتىمىز سىياسىيلىقى كۈچلۈك ،سېرىق ھەم دۆلىتىمىز قانۇنىغا زىت بولغان يازمىلارنى چەكلەيدۇ.ئۆزىڭىزنى ئاسراپ ئالدىنىشتىن ھەزەر ئەيلەڭ
مەدەنىيەتلىك تور مۇھىيتى ھازىرلاپ ،ناچار ئۇچۇرلارنى پاش قىلىڭ. QQ:360805095،1823308556 ،E-mail:baykax@163.com

ئولۇغ ۋەتىنىمىزنى قىزغىن سۈيۈپ، گۈزەل يۇرت ماكان بەرپا قىلايلى! ! 热爱伟大祖国 建设美好家园


تېز ئىنكاسچوققىغا قايتىشسەھىپىگە قايتىش