Распечатайте растровое изображение с квадратными прямоугольниками, чтобы - PullRequest
2 голосов
/ 17 апреля 2011

Я хочу создать растровое изображение, напечатанное с x строками и y столбцами, чтобы каждый квадрат имел размер 10 x 10 пикселей.

Теперь, когда я передаю:

private void printBitmap(rows, columns, numOfWhites, numOfblack, numOf(green or brown)) {
// i want to be able to build a bitmap with rows and columns with White to top right, 
// black to bottom right, if green or brown fill the box with green or brown 
// except the area with white or black 
// how do i do this in C# ?
}

Ответы [ 2 ]

2 голосов
/ 17 апреля 2011

Мы здесь не для того, чтобы выполнять вашу работу, поэтому вот подсказка для стартера:

Создать растровое изображение: http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.aspx

и затем нарисуйте линии:

DrawLine: http://msdn.microsoft.com/fr-fr/library/021a23yy.aspx

Ух, супер тяжело !! : D

1 голос
/ 17 апреля 2011

Конечно!

private void printBitmap(rows, columns, numOfWhites, numOfblack /*, numOf... */) {
    Bitmap bmp = new Bitmap(rows * 10, columns * 10);
    Graphics g = Graphics.FromImage(bmp);
    SolidBrush bWhite = new SolidBrush(Color.White);
    SolidBrush bBlack = new SolidBrush(Color.Black);
    // ...SolidBrush bColor = new SolidBrush(Color.AnyColor);
    // ...
    int countNumOfWhites = 0;
    int countNumOfBlacks = 0;
    // int countNumOf... = 0;
    // ...
    for(int c = 0; c < columns; c++)
    {
        for(int r = 0; r < rows; r++)
        {
            if(countNumOfWhites < numOfWhites)
            {
                g.FillRectangle(bWhite, new Rectangle(r * 10, c * 10, (r + 1) * 10, (c + 1) * 10);
                countNumOfWhites++; 
            }
            else if(countNumOfBlacks < numOfBlacks)
            {
                g.FillRectangle(bBlack, new Rectangle(r * 10, c * 10, (r + 1) * 10, (c + 1) * 10);
                countNumOfBlacks++;
            }
            //else if(countNumOf... < numOf...)
            //{
            //    g.FillRectangle(b..., new Rectangle(r * 10, c * 10, (r + 1) * 10, (c + 1) * 10);
            //    countNumOf...++;
            //}
        }
    }
    bmp.Save("printedbitmap.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}

Это всего лишь фрагмент, поэтому я не проверял свой код.

Я надеюсь, что смогу помочь.

...