2013-10-02 114 views
0

我有一個圖像(這是一個雪碧)。我將它存儲在一個字節數組中。我想只提取與這個字節數組中的特定位置和大小相關的字節,以便我可以創建一個新的圖像。基本上,一個作物。我使用的是c#和compact cf.我可以使用get pixel並將每個值保存到一個字節數組,然後'讀'我感興趣的部分。我知道我可以使用lockbitmap來加快速度。我通常會使用Aforge和/或Emgu,但正如我所說我正在使用緊湊的cf框架2.從字節數組中裁剪圖像

我會感興趣的任何已知的方式來做到這一點。

感謝

附加。 關於下面的鏈接,我想知道是否有一個替代(如緩衝區副本)這個迭代的代碼段?

//Iterate the selected area of the original image, and the full area of the new image 
for (int i = 0; i < height; i++) 
{ 
for (int j = 0; j < width * BPP; j += BPP) 
{ 
int origIndex = (startX * rawOriginal.Stride) + (i * rawOriginal.Stride) + (startY * BPP) + (j); 
int croppedIndex = (i * width * BPP) + (j); 

//copy data: once for each channel 
for (int k = 0; k < BPP; k++) 
{ 
croppedBytes[croppedIndex + k] = origBytes[origIndex + k]; 
} 
} 
} 
+1

HTTP ://stackoverflow.com/questions/9688454/cropping-an-area-from-bitmapdata-with-c-sharp#answer-9691388 –

+0

@Vaibs_Cool嗨,感謝您的鏈接。我昨天晚上看了那個晚上,但返回的圖像是黑白的。我繞過像素格式,但得到一個錯誤,說只讀。昨天晚上顯然非常疲憊,因爲我只是做了一個簡單的複製和粘貼,它的工作原理。所以,我想我有點厚。你應該得到一個'嘀嗒',因爲你讓我重新審視它。謝謝 –

回答

1

我有更多的鏈接,你

試試,如果你發現你的解決方案或者它可以幫助你以任何方式

1)http://www.codeproject.com/Articles/33838/Image-Processing-using-C

2)http://codenicely.blogspot.in/2012/03/how-to-crop-image-in-c.html

+0

感謝您的額外鏈接。我已經看過那些,但我需要直接處理字節數據。原因是我使用的是一個非常大的Sprite,它會給我帶來移動設備上的內存不足異常。所以,流量是我的服務器上有一個大的圖像。它作爲字節數組發送到設備。然後我動態地提取我想要的圖像。 –

+0

ookkk好會給代碼片段,如果我得到。 –

+0

謝謝,我會做同樣的帖子回來.. –