При создании растрового изображения с нуля в VB.Net, воняет качество?

Vb. Сетевое приложение создает битовый массив с нуля и или преобразовывает в tiff или отправляет его на принтер. В обоих случаях качество изображения (в этом случае шрифт) не хорошо вообще. Упомянутый ниже пример кода создает графический объект, который я использую для записи в изображение.

Dim gr2 As Graphics = Graphics.FromImage(New Bitmap(800, 1000), Imaging.PixelFormat.Format32bppPArgb))
7
задан ajl 19 March 2010 в 15:30
поделиться

2 ответа

Наряду с тем, что сказал @durilai, вы можете поднять разрешение, если собираетесь печатать. .Net использует системное разрешение, которое обычно составляет 96 точек на дюйм, но принтеры могут работать с файлами с разрешением 300 точек на дюйм или больше.

    'Create a new bitmap
    Using Bmp As New Bitmap(800, 1000, Imaging.PixelFormat.Format32bppPArgb)
        'Set the resolution to 300 DPI
        Bmp.SetResolution(300, 300)
        'Create a graphics object from the bitmap
        Using G = Graphics.FromImage(Bmp)
            'Paint the canvas white
            G.Clear(Color.White)
            'Set various modes to higher quality
            G.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
            G.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
            G.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias

            'Create a font
            Using F As New Font("Arial", 12)
                'Create a brush
                Using B As New SolidBrush(Color.Black)
                    'Draw some text
                    G.DrawString("Hello world", F, B, 20, 20)
                End Using
            End Using
        End Using

        'Save the file as a TIFF
        Bmp.Save("c:\test.tiff", Imaging.ImageFormat.Tiff)
    End Using
11
ответ дан 6 December 2019 в 23:04
поделиться

Я использовал эти методы, поиграйте с ними, они имеют ОГРОМНОЕ значение. Это C #, но вы видите, что нужно. Извините.

  Bitmap bm = new Bitmap(iWidth, iHeight);
  using (Graphics graphics = Graphics.FromImage(bm))
  {
    graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
    graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
    graphics.DrawImage(bmOriginal, 0, 0, iWidth, iHeight);
  }

Я использовал эти методы для шрифтов:

  graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;
  graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
0
ответ дан 6 December 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: