Вы можете легко написать обрезать себя в fjcore. Начните с кода для Resizer
http://web.archive.org/web/20140304090029/http://code.google.com:80/p/fjcore/source/browse/trunk/FJCore/Resize/ImageResizer.cs?
и FilterNNResize - вы можете видеть, как хранятся данные изображения - это просто массивы пикселей.
Важная часть:
for (int y = 0; y < _newHeight; y++)
{
i_sY = (int)sY; sX = 0;
UpdateProgress((double)y / _newHeight);
for (int x = 0; x < _newWidth; x++)
{
i_sX = (int)sX;
_destinationData[0][x, y] = _sourceData[0][i_sX, i_sY];
if (_color) {
_destinationData[1][x, y] = _sourceData[1][i_sX, i_sY];
_destinationData[2][x, y] = _sourceData[2][i_sX, i_sY];
}
sX += xStep;
}
sY += yStep;
}
показывает, что данные хранятся в массиве цветовых плоскостей (1 элемент для 8bpp серого, 3 элемента для цвета) и каждый элемент имеет двумерный массив байтов (x, y) для изображения. *
Вам просто нужно перебрать целевые пиксели, затем скопировать их из соответствующего места в источнике.
edit: не забудьте предоставить патч автору fjcore