2010-03-19 29 views
5

Ứng dụng Vb.Net tạo bitmap từ đầu và chuyển đổi thành tiff hoặc gửi tới máy in. Trong cả hai trường hợp, chất lượng của hình ảnh (trong trường hợp này phông chữ) không tốt chút nào. Mã mẫu được liệt kê bên dưới tạo đối tượng đồ họa mà tôi sử dụng để ghi vào hình ảnh.Khi tạo một hình ảnh bitmap từ đầu trong VB.Net, chất lượng stinks?

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

Chỉ là tiff được tạo trông có vẻ xấu hoặc bạn có cùng vấn đề với bitmap (bmp) không? –

+0

Có, chất lượng stinks không có vấn đề mà loại tôi tạo - bmp, tiff, jpg, vv – ajl

Trả lời

10

Cùng với những gì @durilai nói bạn có thể muốn tung tăng độ phân giải nếu bạn đang đi để được in. .Net sử dụng độ phân giải hệ thống thường là 96 DPI nhưng máy in có thể hoạt động 300 DPI hoặc các tệp lớn hơn.

'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 Điểm tốt, sẽ ảnh hưởng đến kích thước tệp đáng kể. –

+0

Vì vậy, có vẻ như sẽ trở nên tốt hơn, nhưng nó vẫn không phải là tốt nhất. Ví dụ, khi tôi xếp hàng 2 tài liệu in - một bitmap và một từ doc - bitmap trông giống như nó được in từ một máy in ma trận chấm cũ - mỗi ký tự được tạo thành từ các dấu chấm nhỏ. Bất cứ một đề nghị nào khác? – ajl

+0

Bạn in bằng cách nào? –

0

Tôi đã sử dụng các phương pháp này, chơi xung quanh với chúng tạo ra sự khác biệt HUGE. Đây là C#, nhưng bạn có thể thấy những gì cần thiết. Lấy làm tiế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); 
    } 

tôi đã sử dụng các phương pháp này cho các phông chữ:

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

Nó tốt hơn một chút, nhưng các phông chữ cong vẫn trông thực sự xấu. – ajl

+0

Kiểm tra phần bổ sung của tôi, tôi không thấy bạn đang làm phông chữ. –

+0

Nhận xét giống như trên - Vì vậy, có vẻ như đang trở nên tốt hơn, nhưng nó vẫn không phải là tốt nhất. Ví dụ, khi tôi xếp hàng 2 tài liệu in - một bitmap và một từ doc - bitmap trông giống như nó được in từ một máy in ma trận chấm cũ - mỗi ký tự được tạo thành từ các dấu chấm nhỏ. Bất cứ một đề nghị nào khác? – ajl

Các vấn đề liên quan