gpt4 book ai didi

vb.net - Graphics.Drawstring 在 PictureBox 中看起来不错,但在 Bitmap 中看起来很糟糕

转载 作者:行者123 更新时间:2023-11-30 23:59:51 25 4
gpt4 key购买 nike

我正在尝试使用 DrawString将文本写为图像,然后将其旋转 90 度。它适用于位图或直接在 PictureBox 上工作,但最大的区别在于质量。 PictureBox绘制的文字质量很好,看起来不错。当我将它绘制在图像上时,它看起来很可怕而且块状。我做了一些改变,试图让它看起来更漂亮,但它看起来并不像它应该的那么漂亮。

示例代码:

使用 Windows 窗体项目并在其上放置 2 个图片框和一个按钮,然后使用以下代码运行它以了解我的意思:

Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim g As System.Drawing.Graphics
g = PictureBox1.CreateGraphics

' x.DrawRectangle(New Pen(Brushes.White, 200), New Rectangle(0, 0, 200, 200))
g.TranslateTransform(10.0F, 0.0F)
g.RotateTransform(90)
g.DrawString("MM Components", New Font("Arial", 7, FontStyle.Regular), Brushes.DarkBlue, New PointF(0, 0))

Dim g2 As System.Drawing.Graphics
Dim img As New Bitmap(300, 300, Drawing.Imaging.PixelFormat.Format24bppRgb)
g2 = Graphics.FromImage(img)

g2.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
g2.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAliasGridFit
g2.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
' img.SetResolution(150, 150)

' x.DrawRectangle(New Pen(Brushes.White, 200), New Rectangle(0, 0, 200, 200))
g2.TranslateTransform(10.0F, 0.0F)
g2.RotateTransform(90)
g2.FillRectangle(Brushes.White, 0, 0, 300, 300)
g2.DrawString("MM Components", New Font("Arial", 7, FontStyle.Regular), Brushes.DarkBlue, New PointF(0, 0))
PictureBox2.Image = img

'System.Threading.Thread.Sleep(20)
End Sub
End Class

最佳答案

这些变化似乎让它看起来不错......

    g2.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
g2.TextRenderingHint = Drawing.Text.TextRenderingHint.ClearTypeGridFit
g2.CompositingQuality = Drawing2D.CompositingQuality.HighQuality

关于vb.net - Graphics.Drawstring 在 PictureBox 中看起来不错,但在 Bitmap 中看起来很糟糕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3418283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com