討論區快速選單
知識庫快速選單
政府補助!資策會APP就業班 我的IT職涯該如何規劃 ? 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
[VB2008][VB6]圖片格式與透明圖片背景
更改我的閱讀文章字型大小
作者 : tw159134(小t)
[ 貼文 2 | 人氣 212 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/20 上午 03:39:59
1. 編譯器或直譯器: VB6 Ent. VB2008 Express
   2. 編譯器語系:繁中版
   3. 作業系統:WinXP Pro
   4. 作業系統語系:繁中版

我想要做的軟體
主要功能是將圖片填色部位更換顏色
也就是類似圖層的方式
最頂層是要填色部位的輪廓線
下層是顏色塗層
透過開啟與關閉
來控制填什麼顏色
所以圖片需要是透明背景的格式
我有用VB6做出我要的功能
可是因為VB6 不吃PNG檔案
我只好轉成GIF來做 可是畫質很差
後來換用VB2008 可以吃PNG檔案
原本想說解決問題了
結果卻發現更大的問題
PictureBox 不能與 PictureBox
兩個透明互相穿越
只能夠跟Form互相穿越
不知道該在VB2008上面
要怎麼樣處理才可以達道我要的目的
或是說VB6上面有外掛之類的 可以讓他支援PNG
如果不了解我要的功能
我可以傳VB6的程式給各位高手看看 謝謝

作者 : 168(阿戊) Visual Basic一代宗師貼文超過2000則
[ 貼文 2957 | 人氣 7614 | 評價 11710 | 評價/貼文 3.96 | 送出評價 99 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/20 上午 05:46:20
感覺你的做法有點問題...要填色的話,分層做什麼?!這麼做不就表示你的輪廓也要自己判斷或是再轉貼一次...

試試:
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
 Me.Show: DoEvents
 Me.AutoRedraw = True: Me.ScaleMode = 3: Me.BackColor = vbWhite '底色
 Me.Circle (100, 100), 50, vbBlack: Me.Circle (150, 150), 50, vbBlack '輪廓為黑色(或載入輪廓圖,不需要 把要填色的部分先弄透空!)
 Dim hFFBrush As Long
 Randomize Timer
 For i = 1 To 100
  For j = 100 To 150 Step 25
   hFFBrush = CreateSolidBrush(RGB(Rnd * 255 + 1, Rnd * 255 + 1, Rnd * 255 + 1)) '填色筆刷
   SelectObject Me.hdc, hFFBrush '結合到指定hdc
   FloodFill Me.hdc, j, j, vbBlack '填色
   Me.Picture = Me.Image
   Me.Refresh
   DeleteObject hFFBrush '刪除筆刷
   Sleep 40 '純粹讓它慢一點!
  Next j
 Next i
End Sub

作者 : tw159134(小t)
[ 貼文 2 | 人氣 212 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/20 下午 02:12:39
不好意思 講的不夠清楚!
因為我的圖形很複雜
所以是先在繪圖軟體上將顏色處理好

需求功能如圖片 http://tw159134.myweb.hinet.net/vb.jpg
作者 : 168(阿戊) Visual Basic一代宗師貼文超過2000則
[ 貼文 2957 | 人氣 7614 | 評價 11710 | 評價/貼文 3.96 | 送出評價 99 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/12/20 下午 03:07:36
另一個API:TransparentBlt 透空貼圖~
 板主 : 小樓
 > Visual Basic 6.0/VBA - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Visual Basic 6.0/VBA - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Visual Basic 6.0/VBA
1 阿戊 10670 
2 小樓 8650 
3 Jones 5270 
4 水瓶天賞 2340 
5 joe 2200 
6 史努比 1940 
7 阿呆紅 1440 
8 tt's 1250 
9 青衫 1150 
10 羅啟章 1020 
Visual Basic 6.0/VBA
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2014 程式設計俱樂部 http://www.programmer-club.com.tw/
0.125