2010-03-19 5 views
5

Die Vb.Net-Anwendung erstellt eine Bitmap von Grund auf neu und konvertiert entweder zu einem TIFF oder sendet es an einen Drucker. In beiden Fällen ist die Qualität des Bildes (in diesem Fall die Schrift) nicht gut. Der Beispielcode, der unten aufgeführt wird, erstellt das Grafikobjekt, das ich zu dem Bild schreibe.Beim Erstellen eines Bitmap-Bilds von Grund auf in VB.Net stinkt die Qualität?

Dim gr2 As Graphics = Graphics.FromImage(New Bitmap(800, 1000), Imaging.PixelFormat.Format32bppPArgb)) 
+0

Ist es nur das TIFF erzeugt, die schlecht aussieht, oder haben Sie das gleiche Problem mit dem Bitmap (BMP) als auch? –

+0

Ja, die Qualität stinkt, egal welchen Typ ich erstelle - bmp, tiff, jpg, etc. – ajl

Antwort

10

Zusammen mit dem, was @durilai sagte die Auflösung aufwirbeln könnten wollen, wenn Sie den Druck zu fahren. .Net verwendet die Systemauflösung, die normalerweise 96 DPI beträgt, aber Drucker können Dateien mit 300 DPI oder höher verarbeiten.

'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 
+0

+1 Guter Punkt, wird die Dateigröße erheblich beeinflussen. –

+0

Es sieht also besser aus, aber es ist immer noch nicht das Beste. Wenn ich zum Beispiel zwei gedruckte Dokumente aufreiße - eine Bitmap und ein Worddokument -, sieht die Bitmap so aus, als ob sie von einem alten Nadeldrucker gedruckt würde - jedes Zeichen besteht aus kleinen Punkten. Irgendwelche anderen Vorschläge? – ajl

+0

Wie drucken Sie es? –

0

Ich habe diese Methoden verwendet, spielen mit ihnen herum machen sie einen riesigen Unterschied. Dies ist C#, aber Sie können sehen, was benötigt wird. Es tut uns leid.

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); 
    } 

ich verwendet, um diese Methoden für Schriftarten:

graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed; 
    graphics.TextRenderingHint = TextRenderingHint.AntiAlias; 
+0

Es ist etwas besser, aber die geschwungenen Schriften sehen immer noch sehr schlecht aus. – ajl

+0

Überprüfen Sie meine Ergänzung, ich habe nicht gesehen, dass Sie Schriften gemacht haben. –

+0

Gleicher Kommentar wie oben - So sieht es besser aus, aber es ist immer noch nicht das Beste. Wenn ich zum Beispiel zwei gedruckte Dokumente aufreiße - eine Bitmap und ein Worddokument -, sieht die Bitmap so aus, als ob sie von einem alten Nadeldrucker gedruckt würde - jedes Zeichen besteht aus kleinen Punkten. Irgendwelche anderen Vorschläge? – ajl

Verwandte Themen