Я бы хотел использовать Canvas для «сдвига растрового изображения»;создать растровое изображение из растрового изображения, но со смещением y таким образом, чтобы все пиксели в растровом изображении либо смещались вниз (с пустыми пикселями вверху), либо смещались вверх (с пустыми пикселями внизу).Я использую код ниже, чтобы сделать это.Код работает нормально, пока я сдвигаюсь вверх (shiftY отрицательно), но при попытке сдвига вниз он выдает растровое изображение мусора.
Второй набор кода - это мой обходной путь, но это приводит к нежелательному удвоению использования моей памяти.
Можно ли как-нибудь сдвинуть растровое изображение, используя второе растровое изображение?
//create canvas from the current Bitmap.
Canvas canvas = new Canvas (m_Bitmap);
/*draw into the current Bitmap into the canvas with an offset, thereby drawing over itself
shifted pixels*/
canvas.drawBitmap(m_Bitmap, 0, shiftY, null);
`
//create the canvas from a temp bitmap
Canvas canvas = new Canvas (m_2ndBitmap);
//draw the shifted pixels into the temp bitmap
canvas.drawBitmap(m_BackBuffer, shiftX, shiftY, null);
//swap the bitmaps
Bitmap temp = m_Bitmap;
m_Bitmap = m_2ndBitmap;
m_2ndBitmap = temp;