2011-05-13 46 views
4

嗨,我已加載的位圖,我需要把我自己的高度和寬度,如何設置Bitmap.Width和Bitmap.height

bitmap.height = 100; 

但這一說法並沒有讓我,因爲它說,

'System.Drawing.Image.Width' cannot be assigned to -- it is read only 

什麼是重新定位位圖的方法?或分配這些參數?

回答

2

的參數是隻讀的,因爲一個位圖是一個固定的大小。改變位圖結構的大小不會影響圖像。您需要的是縮放圖像,而不是僅指定寬度/高度屬性。

沒有一個內置的方法,我知道這將爲你做這個,所以你需要通過一些額外的工作。 This教程可以幫助你。

2

另一個問題通過給你一些代碼確實可以幫助你。但你可能需要一個解釋。

你不能指定尺寸,因爲它沒有任何意義 - 一旦加載了圖像數據,改變尺寸就需要重新排列數據,插入或去除部分像素數據。一個簡單的尺寸分配將沒有足夠的信息來爲您正確地做到這一點。

更改圖像大小的正確方法是創建一個新圖像,然後在其上繪製舊圖像。爲此,請參閱已引用的其他問題。

2

您只能同時設置高度和寬度。通過設置Size

例如:如果你想設置Height = 50 & Width = 100

。那麼

bitmap.Size = new Size(50 , 100); 

如果你只想改變Height = 50。那麼

bitmap.Size = new Size(50 , bitmap.Width); // this will set its height only 

如果你只想改變Width = 60。然後

bitmap.Size = new Size(bitmap.Height, 60); // this will set its width only 
+0

簡單的方法,因爲你只需設置高度和寬度。我建議調整裁剪大小並移動位圖。 – avirk 2011-05-20 09:57:09

+11

沒有工作抱怨「...大小不能分配 - 它是隻讀」。可以使用Bitmap.Clone(),如avirk的答案中所示。如果您正在使用緊湊框架,請參閱http://msdn.microsoft.com/en-us/library/aa457087.aspx – bob 2012-04-29 23:01:55

+3

大小是隻讀屬性,無法分配給它。 – 2017-03-06 13:00:34

相關問題