Как динамически создать изображение jpg в памяти с помощью .NET?

У меня есть библиотека .NET (3.5 SP1) (DLL), написанная на C #. Мне нужно расширить эту библиотеку методом класса, который будет иметь следующую сигнатуру:

public byte[] CreateGridImage(int maxXCells, int maxYCells,
    int cellXPosition, int cellYPosition)
{
    ...
}

Этот метод должен делать следующее:

  • Входные параметры maxXCells и maxYCells определяют размер сетки ячеек по осям X и Y. maxXCells и maxYCells - это количество ячеек в каждом направлении. Отдельные ячейки имеют квадратную форму. (Так что это своего рода асимметричная шахматная доска.)
  • Входные параметры cellXPosition и cellYPosition идентифицируют одну специальную ячейку в этой сетке, и эта ячейка должна быть заполнена крестиком.
  • Никакой причудливой графики не требуется, на самом деле только черные линии сетки на белом фоне и X в одной из ячеек.
  • Полученная графика должна иметь формат jpg.
  • Создание этой графики должно происходить в памяти и ничего следует хранить в файле на диске и не рисовать на экране.
  • Метод возвращает сгенерированное изображение в виде байта []

Я очень не знаком с графическими функциями в .NET, поэтому мои вопросы:

  • Возможно ли это вообще с .NET 3.5 SP1 без дополнительных сторонних библиотек (чего я бы хотел избежать)?
  • Каковы основные шаги, которые я должен выполнить, и каковы важные пространства имен .NET, классы и методы, которые мне нужно знать для достижения этой цели (особенно рисовать линии и другие простые графические элементы «в памяти» и преобразовывать результат в массив байтов в формате jpg)?

Заранее благодарим вас за предложения!

17
задан Slauma 28 March 2011 в 15:32
поделиться