台灣最大程式設計社群網站
線上人數
1895
 
會員總數:246038
討論主題:189625
歡迎您免費加入會員
討論區列表 >> VB6 >> vb語言轉c 很急...(或把一張圖片分成8層如何在內中插入一個圖片)
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
vb語言轉c 很急...(或把一張圖片分成8層如何在內中插入一個圖片)
價值 : 100 QP  點閱數:1332 回應數:0
樓主

夏死你
門外漢
0 3
32 0
發送站內信

****要做的是 要使用VB在一張圖分成8層 內插入 另一張圖...***下面有C的版本 請高手幫解答一下如何轉換過來= =有點混亂****...

Dim X As Long, Y As Long, R As Integer, G As Integer, B As Integer, C As Integer, Image As Integer

With Picture2 '讀pic1圖
.AutoRedraw = True
.ScaleMode = 3

L = 7 'LBS 7 層1~8

s = 1 ' S 為 分層之代號

For i = 1 To L
s = s * 2 ' S 開始 往上層跑


For X = 0 To .ScaleWidth
For Y = 0 To .ScaleHeight
LongToRGB .Point(X, Y), R, G, B
C = R
original = C
C = Image + X * ScaleWidth + Y
result = (C & s) '判斷lena像素質那層是0 or 1
If result > 0 Then

original = -s
'(X + original \ 2) * ScaleWidth + (Y + original \ 2) = 0

Else: original = original
Image X * ScaleWidth + Y = C



Picture2.PSet (X, Y), RGB(C, G, B)
Next
DoEvents

Next
.AutoRedraw = False
End With '結束

************上面VB 下面C**********************

layer=4;
s=1;
for (i=1;i<layer;i++)s=s*2;
for (x = 0 ; x < height ; x++ ){
for (y = 0 ; y <width; y++){
b=*(Image2+x*width+y); // read pixels of logo
z=*(Image+x*width+y); // read pixels of lena
if ( b > 128) // 如果logo的值是白的
{
result=( z & s) ; //判斷lena像素質那層是0 or 1
if (result > 0) //結果如果大於0
{
//就不做處理
}
else
{
z=z-s; //不然就把lena變成0
*(Image+x*width+y)=z; //
}
}
else //如果logo的值是黑的
{
result=( z & s) ; //判斷lena像素質那層是0 or 1
if (result < 0) //結果如果小於0
{
//就不做處理
}
else
{
z=z+s; //不然就把lena變成1
*(Image+x*width+y)=z;

本篇文章發表於2008-10-20 23:31
目前尚無任何回覆
   

回覆
如要回應,請先登入.