2013-10-03 29 views
0

我已經實現了一個函數來在c#(縮放)中垂直調整圖像大小。它需要兩個參數:要調整大小的圖像和圖像的新高度。這裏是我的代碼:在c中實現調整圖像大小#

public static Bitmap ScaleUpDown(Bitmap b, int height) 
    { 
     Bitmap scaledImage = new Bitmap(b.Width, height); 

     int scaleRatio = height/b.Height; 

     if (scaleRatio >= 1) 
     { 
      for (int i = 0; i < b.Width; i++) 
      { 
       for (int j = 0; j < b.Height; j++) 
       { 
        Color pixel = b.GetPixel(i, j); 

        int fill = 0; 
        while (fill < scaleRatio) 
        { 
         scaledImage.SetPixel(i, scaleRatio * j + fill, pixel); 
         fill++; 
        } 

       } 
      } 
     } 

     return scaledImage; 
    } 

這裏是我做的:我訪問的每一個像素,將其複製並粘貼到基於調整的比例在同一列中的下一行。我的問題是,只有當新高度是舊高度的倍數時,這些代碼才能正常工作,例如2 * oldHeight,3 * oldHeight等。如果新高度應該是舊高度的1.5倍或1.3倍,那該怎麼辦?我能做些什麼?

感謝

+0

不清楚你在問什麼。 'BroTip:'使用'Viewbox'。不要浪費你的時間試圖重新發明輪子。 –

+0

我認爲這是一個excersize?你知道.Net提供了開箱即用的調整大小/縮放比例(並且如果你需要的不僅僅是基本的大小調整/縮放比例,還有大量的圖書館正在爲你繁重的工作)? – RobIII

+0

@RobIII是的,我知道.Net提供它,但我試圖實現它。這是一件太難的事情嗎?我是圖像處理新手,試圖理解它是如何工作的,所以我想自己實現它 – yrazlik

回答