文号
t17312
阅读
7772
回复
9
收藏
7
RF Software - 破M言论制造器
2009/07/14
IP:广东
这个。。。exe就不放了

最早.png

zz2.png

在这个程序中,我使用了GDI+,imports system.drawing类

通过循环扫描出时间应该打在哪里(用户名后N个像素)

使用了GDI+中drawstring函数


首先引用GDI+
Imports System.Drawing.Drawing2D

创建graphics对象
Dim g as Graphics=PictureBox1.CreateGraphics

创建用于绘制文字的Brush对象

Dim mBrush As New SolidBrush(Color.Blue)

建一个宋体,9码的字体对象:

Dim mFont As New Font("宋体", 9)

最后drawstring
g.DrawString("我日飞你", mFont, mBrush, 0, 10)

下面是扫描

dim i,j as long
dim a as bitmap
a=picturebox1.image

for i = 1 to 200
for j = 1 to 50
dim tmp as long
tmp=a.getpixel(i,j).toargb+16777215
if tmp < 16777213 then
return i
endif
next
next

由于GDI+操作以后bitmap没有被更新,第二次制造的时候会造成叠加

所以我创建了新建按钮
其实就是
picturebox1.load(文件名)

这样就可以制造一幅新的图片

但是
如果用户名与时间没有对准,就会很囧

所以,我们使用Alignment和LineAlignmen 属性,其中Alignmen 属性指定每行文本在矩形中水平位置,LineAlignment属性指定文本块在矩形中垂直位置

创建字符格式化对象

Dim mStringFormat As New StringFormat

mStringFormat.Alignment = StringAlignment.Center

mStringFormat.LineAlignment = StringAlignment.Center

绘制文本可以这样
g.DrawString(mText, mFont, mBrush, RectangleF.op_Implicit(Rect), mStringFormat)

于是文本就被对齐了
93°作者
17年6个月前IP:未同步
125206
6楼
LS对灌水的理解非常奇特
+400
科创币
novakon
2009/07/14
aibara iduas
引用
评论
93°作者
17年6个月前IP:未同步
125277
9楼
只有两张图片


专供截图党
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的