96编辑器旗下产品
找图
终身
ID:0
到期时间:永久
退出登录
您的位置:首页 > 百科管理 > 详情

bgsub在线抠图-怎样用VB把一张图片透明的放到Picture里,在线等

原创:找图网 2023-04-12 23:57:03
  • 美图秀秀在线使用怎么证件照换背景

  • 第一:先点击右上方的打开,选择打开需要更换背景颜色的证件照。如图:

    第二:打开证件照之后,点击左下方的抠图笔。如图:

    第三:这个时候会出现三种模式的抠图。一般选择自动抠图会比较简单。如图:

    第四:接下来用抠图笔在证件照的人物上面随意画一下,抠图笔就会自动帮你抠图,然后点击完成抠图。如图:

    第五:点击完成抠图之后,就会得到没有背景颜色的证件照。如图:

    第六:这个时候,可以选择右上方的背景设置那里,选择证件照所需要的背景颜色。如图:

    第七:以下是选择蓝色背景颜色。选择好之后,点击确定或者保存即可。如图:

  • iOS开发中怎么实现点击关闭按钮隐藏subView

  • iPhone应用中,添加subView到窗口,还要实现一个功能,在点击关闭按钮是,应该subView隐藏起来,这是创建subView的代码:

    1

    2

    3

    4

    5

    6

    UIView*subView=[[UIView alloc]initWithFrame:CGRectMake(0,0, 1024,768)];

    =[UIColor colorWithPatternImage:[UIImage imageNamed:@""]];

    UIWindow* window = [UIApplication sharedApplication].keyWindow;

    if (!window)

    window = [[UIApplication sharedApplication].windows objectAtIndex:0];

    [[[window subviews] objectAtIndex:0] addSubview:subView];

    关闭按钮:

    -(void)closeButtonAction{

    NSLog(@"CLicked on this button");

    [subView removeFromSuperview] ;

    =TRUE;

    }

    解决方法 1:

    使用removefromsuperview删除subView,如果只是想隐藏 = YES;,在按钮动作内执行。

  • 怎样用VB把一张图片透明的放到Picture里,在线等

  • Public Function TranBlt(DestHdc As Long, X As Long, Y As Long, W As Long, H As Long, srcHdcOrBmp As Long, Optional srcX As Integer, Optional srcY As Integer, Optional srcW As Long, Optional srcH As Long, Optional tc As Long = -1, Optional IsBmp As Boolean) As Long

    'srcHdcOrBmp参数 传入的可以是hdc也可以是Bmp对象的Handle,

    'IsBmp参数 为真时srcHdcOrBmp代表Bmp对象的Handle,为假时代表hdc

    '返回值 成功时返回透明色,不成功时返回-1

    Dim tHdc(3) As MemHdc

    Dim J As Long, oc As Long, I As Long, Bm As BITMAP, cc As Long, NewDc As Long

    Dim sw As Long, sh As Long, sBmp As Long, sHdc As Long, obm As Long, NewX As Long, NewY As Long

    If DestHdc = 0 Or srcHdcOrBmp = 0 Or W = 1 And H = 1 Then GoTo fail

    If IsBmp Then '若传入的是Bmp句柄,需为其创建一个临时DC

    sBmp = srcHdcOrBmp

    tHdc(3) = NewMyHdc(DestHdc, 0, 0, srcHdcOrBmp)

    sHdc = tHdc(3).hdc

    Else

    sHdc = srcHdcOrBmp

    If srcW = 0 Then sBmp = GetCurrentObject(sHdc, 7)

    End If

    If sHdc = 0 Or sBmp = 0 Then GoTo fail

    If srcW = 0 Then '若没有提供源图大小,需取得整个源图大小

    GetObj sBmp, Len(Bm), Bm

    sw = - srcX

    sh = - srcY

    Else

    sw = srcW

    sh = srcH

    End If

    If sw < 1 Or sh < 1 Then GoTo fail

    If tc = -1 Then

    cc = GetPixel(sHdc, srcX, srcY) '将左上角第一个像素作为源图背景色,用于透明

    Else

    cc = tc

    End If

    If W <> sw Or H <> sh Then

    tHdc(2) = NewMyHdc(DestHdc, W, H)

    StretchBlt tHdc(2).hdc, 0, 0, W, H, sHdc, srcX, srcY, sw, sh, vbSrcCopy

    '先将源图缩放,下面步骤就一样了。

    NewDc = tHdc(2).hdc

    Else

    NewDc = sHdc

    NewX = srcX

    NewY = srcY

    End If

    BitBlt DestHdc, X, Y, W, H, NewDc, NewX, NewY, vbSrcInvert

    '将源图先反色(XOR)绘入目标图,若源图背景为黑色,此步可省

    '下面是制作Mask图的方法

    I = CreateBitmap(W, H, 1, 1, ByVal 0&) '建立单色位图

    tHdc(0) = NewMyHdc(DestHdc, 0, 0, I) '为单色图建立新DC,并选入

    tHdc(1) = NewMyHdc(DestHdc, W, H) '另建一个彩色图及DC,用于存放Mask图

    oc = SetBkColor(NewDc, cc) '将源图背景色改为透明色

    BitBlt tHdc(0).hdc, 0, 0, W, H, NewDc, NewX, NewY, vbSrcCopy

    '先将源图绘入单色DC,由此产生只有正反的Mask图,背景色(透明色)为黑,其它为白

    SetBkColor NewDc, oc '恢复源图背景色,不是必须的,但这是个好习惯。

    BitBlt tHdc(1).hdc, 0, 0, W, H, tHdc(0).hdc, 0, 0, vbSrcCopy

    '单色DC必须复制进彩色DC才能进行后面的的AND运算

    'Mask图完成,并已放入彩色DC

    BitBlt DestHdc, X, Y, W, H, tHdc(1).hdc, 0, 0, vbSrcAnd '标准透明绘图:选将Mask图用And运算绘入,

    BitBlt DestHdc, X, Y, W, H, NewDc, NewX, NewY, vbSrcInvert '再将源图以反色(XOR)绘入一次

    DelMyHdc tHdc(0)

    DelMyHdc tHdc(1)

    If tHdc(2).hdc <> 0 Then DelMyHdc tHdc(2)

    If tHdc(3).hdc <> 0 Then DelMyHdc tHdc(3)

    TranBlt = cc

    Exit Function

    fail:

    If tHdc(3).hdc <> 0 Then DelMyHdc tHdc(3)

    TranBlt = -1

    End Function

    Private Function NewMyHdc(dHdc As Long, W As Long, H As Long, Optional Bm As Long) As MemHdc

    With NewMyHdc

    .hdc = CreateCompatibleDC(dHdc)

    If Bm = 0 Then

    .Bmp = CreateCompatibleBitmap(dHdc, W, H)

    Else

    .Bmp = Bm

    End If

    .obm = SelectObject(.hdc, .Bmp)

    End With

    End Function

    Private Function DelMyHdc(MyHdc As MemHdc, Optional nobmp As Boolean) As MemHdc

    With MyHdc

    If .hdc <> 0 And .obm <> 0 Then SelectObject .hdc, .obm

    If nobmp = False And .Bmp <> 0 Then DeleteObject .Bmp

    If .hdc <> 0 Then DeleteDC .hdc

    End With

    End Function

    把这个函数放在一个BAS里,然后在窗体里

    TranBlt , X,Y,W,H,, _

    TX,TY,TW,TH, , True

    就OK

    最新文章 更多
    最新素材 更多
    公司介绍 网站地图 图片资讯
    Copyright © 2010-2022 山东找图网络科技有限公司  鲁ICP备18007836号-3  邮箱:15653358549@163.com