簡體   English   中英

為什么要從位圖的Width和Height屬性中減去1?

[英]Why would you subtract 1 from the Width and Height properties of a Bitmap?

我有以下代碼:

public static double[][] GetRgbProjections(Bitmap bitmap)
{
    var width = bitmap.Width - 1;
    var height = bitmap.Height - 1;

    var horizontalProjection = new double[width];
    var verticalProjection = new double[height];

    var bitmapData1 = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);

有人知道bitmap.Width - 1是做什么用的嗎? 也是bitmap.Height - 1; 為什么要從每個屬性值中減去1?

由返回的值WidthHeight屬性是互斥的 ,這意味着與坐標(寬度,高度)中的像素立即位於所述位圖的邊界之外

因此,如果要遍歷像素,則需要減去一以獲得正確的行數或列數。

當然,很難說更多。 您顯示的代碼部分不再使用這些值。

不。我們永遠不會知道從位圖寬度減去1的目的是什么,因為我們不知道bitmap的上下文。

這樣做的原因是使數組索引與位圖的行和高度值匹配。 考慮:

您有一個2x2像素的位圖。 它總共有4個像素,寬度和高度均為2。 如果要對其進行迭代,則需要在兩個方向(寬度和高度)上從0到1(包括兩端)進行迭代,但是如果按位圖像素進行迭代,則將在1和2之間進行迭代,這將導致索引從界限。

就我個人而言,我不會從width和height 變量中減去1,而只是在迭代像素數組以防止混淆時減去。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM