我正在試圖製作一個可以放大和縮小圖片框中的圖片的跟蹤欄。這是我目前的代碼: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