2011-12-08 12 views
0

TWAINコントロールを使用して画像をスキャンしていますが、これは問題なく動作し、画像をスキャンしてpictureBox1に表示できます。ストリームに複数の画像を追加してから、PreviousNextボタンを使用してステップを進めるのは難しいです。ストリームに画像を追加してから、ステップスルーしますか?

誰かが助けてもらえますか、下のコードがうまくいかず、私は混乱の渦中にいます。ありがとう

//The axTwain1_OnAcquire event runs on each scanned page.   

private void axTwain1_OnAcquire(object sender, EventArgs e) 
{ 
    images = new List<Image>(); 
    pageCount = pageCount + 1; 
    axTwain1.SaveToFile(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\" + pageCount +".jpg"); 
    FileStream stream = File.OpenRead(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\" + pageCount + ".jpg"); 
    images.Add(Image.FromStream(stream)); 
    pictureBox1.Image = System.Drawing.Bitmap.FromStream(stream); 

} 

private void btnNext_Click(object sender, EventArgs e) 
{ 

    index++; 
    if (index < 0 || index >= images.Count) 
     index = 0; 
    pictureBox1.Image = images[index]; 
    int count = index + 1; 
    //labelCount.Text = "Showing " + count.ToString() + " of " + images.Count; 
} 

private void btnPrevious_Click(object sender, EventArgs e) 
{ 
    index++; 
    if (index < 0 || index >= images.Count) 
     index = 0; 
    pictureBox1.Image = images[index]; 
    int count = index + 1; 
} 
+0

何が問題なのですか?イメージが表示されない、イベントがヒットしない、またはインデックス例外が発生していますか? –

答えて

1

あなたは論理的に見えます。両方の前および次の機能では、あなたは条件文があります。次の場合

index < 0 || index >= images.Count 

を、あなたのロジックは次のようになります。

index < images.Count -- then increment. 

と以前用:

index > 0 -- then decrement. 

本質的に、あなたの機能は次のようになります:

private void btnNext_Click(object sender, EventArgs e) 
{ 
    if(index < images.Count) { 
     index++; 
     pictureBox1.Image = images[index]; 
    } 
} 

private void btnPrevious_Click(object sender, EventArgs e) 
{ 
    if(index > 0) 
    { 
     index--; 
     pictureBox1.Image = images[index]; 
    } 
} 
+0

多くのありがとうございました。 –

関連する問題