我正在试图制作一个可以放大和缩小图片框中的图片的跟踪栏。这是我目前的代码:c中的图像缩放工具#
namespace Zoom_in_and_Out_Tool
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Image imgOriginal;
private void Form1_Load(object sender, EventArgs e)
{
// set image location
imgOriginal = Image.FromFile(@"C:\New Folder\picture1.jpg");
picBox.Image = imgOriginal;
// set Picture Box Attributes
picBox.BackgroundImageLayout = ImageLayout.Stretch;
// set Slider Attributes
zoomSlider.Minimum = 1;
zoomSlider.Maximum = 5;
zoomSlider.SmallChange = 1;
zoomSlider.LargeChange = 1;
zoomSlider.UseWaitCursor = false;
// reduce flickering
this.DoubleBuffered = true;
}
public Image PictureBoxZoom(Image img, Size size)
{
Bitmap bm = new Bitmap(img, Convert.ToInt32(img.Width * size.Width), Convert.ToInt32(img.Height * size.Height));
Graphics grap = Graphics.FromImage(bm);
grap.InterpolationMode = InterpolationMode.HighQualityBicubic;
return bm;
}
private void zoomSlider_Scroll(object sender, EventArgs e)
{
if (zoomSlider.Value > 0)
{
picBox.Image = null;
picBox.Image = PictureBoxZoom(imgOriginal, new Size(zoomSlider.Value, zoomSlider.Value));
}
}
}
}
目前它出现了2个问题。一种是它希望用行grap.InterpolationMode = InterpolationMode.HighQualityBicubic; 。第二个问题是,当我尝试缩放它出现了错误:“”ArgumentException是未处理“错误在线:位图bm =新位图(img,Convert.ToInt32(img.Width * size.Width),转换.ToInt32(img.Height * size.Height)); “任何帮助将是巨大的,
感谢
UPDATE 第一个错误说:” 这个名字 'InterpolationMode' 不当前存在上下文“ 第二个错误,当我评论这条线是:'NullReferenceException未处理”对象引用未设置为对象的实例。'就行位图BM =新位图(IMG,Convert.ToInt32(img.Width * size.Width),Convert.ToInt32(img.Height * size.Height));
由于
第一个和第二个内部异常详细信息的补充错误是什么? – 2010-11-17 10:45:16