网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月04日漏签0天
vb吧 关注:156,056贴子:1,166,187
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 6回复贴,共1页
<<返回vb吧
>0< 加载中...

这是deepseek自动生成的一段代码 半透明水印

  • 取消只看楼主
  • 收藏

  • 回复
  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在感叹deepseek强大的同时,有一点遗憾,程序运行无效果。请懂API的大神给看看哪里错了?
这是deepseek自动生成的一段代码 半透明水印
'Option Explicit
'
'deepseek的半透明水印,无效果,有待查找原因
Option Explicit
' GDI API声明
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private 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
Private Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function AlphaBlend Lib "msimg32.dll" (ByVal hdcDest As Long, ByVal nXOriginDest As Long, ByVal nYOriginDest As Long, ByVal nWidthDest As Long, ByVal nHeightDest As Long, ByVal hdcSrc As Long, ByVal nXOriginSrc As Long, ByVal nYOriginSrc As Long, ByVal nWidthSrc As Long, ByVal nHeightSrc As Long, ByVal BLENDFUNCTION As Long) As Long
' 常量和结构体
Private Const TRANSPARENT = 1
Private Const AC_SRC_OVER = &H0
Private Type BLENDFUNCTION
BlendOp As Byte
BlendFlags As Byte
SourceConstantAlpha As Byte
AlphaFormat As Byte
End Type
Public Sub AddTransparentWatermark( _
ByVal picSource As PictureBox, _
ByVal watermarkText As String, _
ByVal fontSize As Integer, _
ByVal textColor As Long, _
ByVal xPos As Long, _
ByVal yPos As Long, _
Optional ByVal alpha As Byte = 128)
Dim hdcTemp As Long, hBmpTemp As Long, hBmpOld As Long
Dim blendFunc As BLENDFUNCTION
Dim picWidth As Long, picHeight As Long
' 确保以像素为单位计算尺寸
picSource.ScaleMode = vbPixels
picWidth = picSource.ScaleWidth
picHeight = picSource.ScaleHeight
' 创建临时DC和位图(初始为黑色背景)
hdcTemp = CreateCompatibleDC(picSource.hdc)
hBmpTemp = CreateCompatibleBitmap(picSource.hdc, picWidth, picHeight)
hBmpOld = SelectObject(hdcTemp, hBmpTemp)
' 清空临时DC为黑色(后续混合时黑色区域透明)
BitBlt hdcTemp, 0, 0, picWidth, picHeight, 0, 0, 0, vbMergePen
' 在临时DC上绘制透明文本
SetBkMode hdcTemp, TRANSPARENT
SetTextColor hdcTemp, textColor
With picSource.Font
.Name = "Arial"
.Size = fontSize
.Bold = True
End With
TextOut hdcTemp, xPos, yPos, watermarkText, Len(watermarkText)
' 配置混合参数(关键修正点)
blendFunc.BlendOp = AC_SRC_OVER
blendFunc.BlendFlags = 0
blendFunc.SourceConstantAlpha = alpha ' 控制整体透明度
blendFunc.AlphaFormat = 0 ' 必须设为0
' 将水印混合到原始图片
AlphaBlend picSource.hdc, xPos, yPos, picWidth, picHeight, hdcTemp, 0, 0, picWidth, picHeight, VarPtr(blendFunc)
' 清理资源
SelectObject hdcTemp, hBmpOld
DeleteObject hBmpTemp
DeleteDC hdcTemp
picSource.Refresh
End Sub
Private Sub cmdAddWatermark_Click()
' 加载图片
' Picture1.Picture = LoadPicture("C:\test.jpg")
' 添加半透明水印(参数:PictureBox, 文字, 字体大小, 颜色, X, Y, 透明度)
AddTransparentWatermark Picture1, "Confidential", 24, RGB(255, 255, 0), 0, 0, 128
' 保存为BMP(如需JPG/PNG需第三方库)
SavePicture Picture1.Image, "C:\watermarked.bmp"
End Sub


  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
BitBlt hdcTemp, 0, 0, picWidth, picHeight, 0, 0, 0, vbBlackness ‘这是原语句。
’


2026-01-04 05:03:26
广告
不感兴趣
开通SVIP免广告
  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
BitBlt hdcTemp, 0, 0, picWidth, picHeight, 0, 0, 0, vbBlackness ‘这是原语句。
AlphaBlend picSource.hdc, xPos, yPos, picWidth, picHeight, hdcTemp, 0, 0, picWidth, picHeight, VarPtr(blendFunc)
估计是这两句的问题,本人菜鸟,API能看懂,不大会用。请大神看看是哪个参数错了。


  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
拜托


  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
就是图片加上个半透明的文字作为水印


  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
ReDim byteAry(totbyte - 1)
下标越界
枯行僧:能不能在deepseek的代码基础上修改成功?


  • cxy5636917
  • 简易程序
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
行,不费这个劲了。不弄了。
看来deepseek完全代替人类编程暂时还实现不了。呵呵。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 6回复贴,共1页
<<返回vb吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示