.NET设置的图像显示尺寸

问题描述:

我使用一些自定义控制其中之一是一个工具提示控制器,可以显示图像,所以我使用第ebelow代码以实例化它:.NET设置的图像显示尺寸

Image newImage = Image.FromFile(imagePath); 
e.ToolTipImage = newImage; 

显然可以内联,但现在只是测试。麻烦的是,图像有时是错误的大小,有没有办法设置显示大小。我目前看到的唯一方法是使用GDI +或类似的东西编辑图像。当我只想调整显示大小而不影响实际图像时,看起来像很多额外的处理。

从源文件加载图像对象后,高度和宽度(以及大小和所有辅助属性)都是只读的。因此,您坚持使用GDI +方法在RAM中调整其大小,然后相应地显示它。

你可以采取很多方法,但是如果你想把它封装到一个库中,如果这个问题再次发生,你可以重新使用这个库,你将被设置去。这是不完全优化(即,可能有一些错误),但应该给你如何对待它的想法:

Image newImage = Image.FromFile(myFilePath); 
Size outputSize = new Size(200, 200); 
Bitmap backgroundBitmap = new Bitmap(outputSize.Width, outputSize.Height); 
using (Bitmap tempBitmap = new Bitmap(newImage)) 
{ 
    using (Graphics g = Graphics.FromImage(backgroundBitmap)) 
    { 
     g.InterpolationMode = InterpolationMode.HighQualityBicubic; 
     // Get the set of points that determine our rectangle for resizing. 
     Point[] corners = { 
      new Point(0, 0), 
      new Point(backgroundBitmap.Width, 0), 
      new Point(0, backgroundBitmap.Height) 
     }; 
     g.DrawImage(tempBitmap, corners); 
    } 
} 
this.BackgroundImage = backgroundBitmap; 

我做了测试,和它的工作。 (它创造了我的桌面壁纸之一的200×200大小的版本,然后设置为在临时WinForms项目主要形式的背景图像。你需要为System.Drawingusing报表和System.Drawing.Drawing2D

+0

谢谢我的想法是显示器的大小与实际的图像分辨率是分开的......所以它应该可以单独修改而不需要真正的编辑图像,但可能不是。 – PeteT 2008-11-10 16:24:33

+0

不幸的是,没有...希望(修改后的版本)这可以帮你。 :) – 2008-11-10 16:54:39

在的WinForms,如果你在PictureBox控件中包含图像,PictureBox控件可以设置为放大到特定的高度/宽度,并且图像应该符合

至少这就是我做Head First C#书时发生的事情