¿Cómo crear una imagen jpg dinámicamente en memoria con .NET?

Tengo una biblioteca (DLL) .NET (3.5 SP1) escrita en C #. Tengo que extender esta biblioteca por un método de clase que tendrá la siguiente firma:

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

Este método debe hacer lo siguiente:

Parámetros de entradamaxXCells ymaxYCells define el tamaño de una cuadrícula de celdas en dirección X e Y. @maxXCells ymaxYCells es el número de celdas en cada dirección. Las celdas individuales tienen forma cuadrada. (Entonces es una especie de tablero de ajedrez asimétrico).Parámetros de entradacellXPosition ycellYPosition identifique una celda especial dentro de esta cuadrícula y esta celda debe llenarse con una cruz.No se necesitan gráficos sofisticados, realmente solo líneas de cuadrícula negras sobre un fondo blanco y una X en una de las celdas. El gráfico resultante debe tener formato jpg. La creación de este gráfico debe ocurrir en la memoria y nada debe almacenarse en un archivo en el disco ni pintarse en la pantalla.El método devuelve la imagen generada comobyte[]

No estoy muy familiarizado con las funciones gráficas en .NET, así que mis preguntas son:

Es esto posible con .NET 3.5 SP1 sin bibliotecas adicionales de terceros (que me gustaría evitar)? ¿Cuáles son los pasos básicos que debo seguir y cuáles son los espacios de nombres .NET importantes, las clases y los métodos que necesito saber para lograr este objetivo (especialmente para dibujar líneas y otros elementos gráficos simples "en memoria" y convertir el resultado en un conjunto de bytes en formato jpg)

¡Gracias de antemano por sugerencias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta