
正文
vb.net抗锯齿 enb 抗锯齿
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
关于用VB.NET 模仿输出photoshop 里面4种字体样式,该如何做到?
有个程序叫做ClearType,如果你是win7的,那你一直使用ClearType。使用ClearType可以把字体变得平滑,否则变得浑厚。锐利应该是锐化字体,犀利...我也没见过这种样式的文字,有空再看。 firefox也有这种功能,可以取消或使用ClearType.
我的想法是:
先启用个人程序的ClearType(置于怎么使用,你去查下,我也不知道),然后GDI截取文字部分的图片,然后返回原来的ClearType状态,再输出图像.
相关问答
Q1: VB6或者Vb.Net或者GDI,如何设置单张png图片的透明度,并且平滑没有毛刺?
Private Sub Picture1_Paint()
Dim l As Long, t As Long
l = (Picture1.Width - Picture1.ScaleWidth) / 2 '求左右边偏差
t = (Picture1.Height - Picture1.ScaleHeight) / 2 '求上下边偏差
Picture1.PaintPicture Me.Picture, 0, 0, , , Picture1.Left + l, Picture1.Top + t, Picture1.ScaleWidth, Picture1.ScaleHeight '载入图片,就用这行
'Picture1.PaintPicture Me.Image, 0, 0, , , Picture1.Left + l, Picture1.Top + t, Picture1.ScaleWidth, Picture1.ScaleHeight '复制的图片,就用这行
End Sub
Q2: 我想写一个小游戏程序
Flash本身就支持AS脚本语言,编写小游戏完全足够了,如果要编写中型游戏需要服务器后台支持,大型游戏Flash可以不用考虑了。
如果想用高级语言编写多媒体程序,可以了解一下微软的WPF技术,其网页控件版名为银光——SilverLight,应用领域与Flash大同,不过SilverLight拥有绝对性的强大编程性能支持,其后台代码开发语言可以是C#、VB.net、C++.net、J#等,其前台表现层完全以XML语言描述,它以超强的程度支持点阵图像、矢量图像、文本、Windows常规控件、视频、音频、文档、3D模型等多媒体内容,并且支持3D加速,以及3D抗锯齿渲染、3D实时渲染等强大技术,这些都是Flash所望尘莫及的。
Q3: VB.net背景透明文字有白色锯齿
你把标签的字体换一下,另外你的屏幕分辨率高一些,锯齿就不见了。
打字不易,如满意,望采纳。
Q4: vb中样条曲线问题
不引用的话,VB做不到。这事情要看VB的版本。如果是6.0的话,要去网上下载GDIPLUS的库文件或者自己声明GDI+的API。如果是VB.NET的话,VB自带GDI+,但是也可以下载GDIPLUS库来用。如果不知道去哪里下载,我下载有,你可以问我要。我使用VB6.0。下载gdiplus以后,在VB里面引用这个库,注意要选择“所有文件”才能看到这个库。gdi+里面的path功能可以实现样条:Private
TOKEN
As
Long'GDI+对象
Private
Graphics
As
Long'画板
Private
Sub
InitGDIPlus()
'初始化GDI+
Dim
uInput
As
GdiplusStartupInput
uInput.GdiplusVersion
=
1
If
GdiplusStartup(TOKEN,
uInput)
Ok
Then
'初始化错误
MsgBox
"GDI+
初始化错误。程序即将关闭。",
vbCritical,
"InitError"
End
End
If
GdipCreateFromHDC
Me.hDC,
Graphics'创建画板
GdipSetSmoothingMode
Graphics,
SmoothingModeAntiAlias'设置为反锯齿
End
SubPrivate
Sub
TerminateGDIPlus()
GdipDeleteGraphics
Graphics
'释放graphics占用的内存
GdiplusShutdown
TOKEN
'关闭GDI+
End
SubPrivate
Sub
Form_Load()
InitGDIPlus
'初始化End
SubPrivate
Sub
Command1_Click()
Dim
path
As
Long
Dim
m(3)
As
POINTF
'以下是坐标,你可以自由改变
m(0).x
=
m(0).y
=
m(1).x
=
10
m(1).y
=
100
m(2).x
=
20
m(2).y
=
3
m(3).x
=
500
m(3).y
=
100
Dim
pen
As
Long
GdipCreatePen1
HFF000000,
2,
UnitPixel,
pen
'创建画笔,用来画出样条
GdipCreatePath
FillModeAlternate,
path
'创建path
GdipAddPathBeziers
path,
m(0),
4
'创建样条'Count是说坐标的个数,points只能传递数组的第一个元素,不能传递数组。
GdipDrawPath
Graphics,
pen,
path
'画出样条
GdipDeletePen
pen
'删除画笔
GdipDeletePath
path
'删除样条End
SubPrivate
Sub
Form_Unload(Cancel
As
Integer)
TerminateGDIPlus
'删除GDI+
End
Sub
Q5: vb.net 画线再画保留以前画得
可以把所有画的线都保存在一个列表中,画的时候全部画出即可。如下:
Public Class Form1
Class Line '直线类
Public Point1, Point2 As Point '成员,直线的两个端点
Sub New(p1 As Point, p2 As Point) '构造方法
Point1 = p1
Point2 = p2
End Sub
Public Sub Draw(g As Graphics) '绘制方法
g.DrawLine(Pens.Black, Point1, Point2)
End Sub
End Class
Private Lines As New List(Of Line) '列表用于保存所有画下的直线
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
BackColor = Color.White
DoubleBuffered = True '开启双缓冲可有效避免闪烁
End Sub
Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown
Lines.Add(New Line(e.Location, e.Location)) '在直线列表中添加直线
End Sub
Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove
If e.Button Windows.Forms.MouseButtons.Left Then Return '左键未按下
'鼠标拖动时改变列表最后一条直线(也即当前直线的第二个端点)
Lines(Lines.Count - 1).Point2 = e.Location
Refresh() '刷新窗体
End Sub
'在Form的Paint事件中绘制所有直线,每次Form1重绘时都会触发Paint事件
'PS: 也可以通过重写OnPaint方法来达到类似的效果
Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias '开启抗锯齿
For Each l In Lines '遍历所有直线
l.Draw(e.Graphics) '调用绘制方法,传入的参数可以理解为画布
Next
End Sub
End Class
运行效果:
关于vb.net抗锯齿和enb 抗锯齿的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







