dalv_happy
@dalv_happy

Как удалить полосу из пикселей в bitmap?

Добрый день. Пишу Seam Carving и всё готово кроме одного, как удалить пиксели и отобразить это изменение на pictureBox и в конечном итоге сохранить.
Есть матрица EnergyMat, матрица сумм dist (расстояния) и массив кратчайшего пути way.
Если мы уменьшаем изображение на n пикселей, то в цикле смещаем с текущего положения все последующие пиксели влево.
for (int i = 0; i < height; i++)
            {
                for (int j = way[i]; j < width; j++)
                {
                    EnergyMat[i, j] = EnergyMat[i, j + 1];
                    dist[i, j] = dist[i, j + 1];
                    width--;
                }
            }

1. Как удалить пиксели из битмапа и вывести в pictureBox?
2. Как обрезать матрицы dist и EnergyMat? width-- думаю тут не сгодится

P. s. Обрезаю картинку пока что по ширине.
  • Вопрос задан
  • 335 просмотров
Пригласить эксперта
Ответы на вопрос 1
alex1t
@alex1t
.net developer
1. Либо перерисовать Bitmap в старых размерах, но не нужные пиксели просто закрасить фоном или же создать новый Bitmap нужных размеров и переприсвоить его в PictureBox.Image
2. Обрезать можно только пересоздав новые и скопировав значения, но это будет затратно. Проще наверное width--
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы