我正在使用一些自定义控件,其中一个是可以显示图像的工具提示控制器,因此我使用以下代码来实例化它:
Image newImage = Image.FromFile(imagePath);
e.ToolTipImage = newImage;
显然可以内联它,但此刻只是测试。麻烦的是图像有时是错误的大小,有没有办法设置显示尺寸。我目前可以看到的唯一方法是使用GDI +或类似的东西来编辑图像。当我只想调整显示尺寸而不影响实际图像时,似乎需要进行大量的额外处理。
答案 0 :(得分:1)
从源中加载图像对象后,高度和宽度(以及大小和所有辅助属性)都是只读的。因此,您无法使用GDI +方法在RAM中调整大小,然后相应地显示它。
你可以采取很多方法,但是如果要将它封装到一个可以重用的库中,如果再次出现这个问题,那么你就可以了。这不是完全优化的(IE,可能有一些错误),但应该让你知道如何处理它:
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;
我测试了这个,它确实有效。 (它创建了我的一个桌面壁纸的200x200大小调整版本,然后在刮刮的WinForms项目中将其设置为主窗体的背景图像。您需要using
和{System.Drawing
语句1}}。
答案 1 :(得分:0)
在Winforms中,如果在PictureBox控件中包含图像,可以将PictureBox控件设置为缩放到特定的高度/宽度,图像应该符合。
至少那是我在Head First C#书中发生的事情。