Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
1

Генерация элементарного изображения из 4 разных цветов

27.03.2013, 17:49. Показов 4141. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно как-то генерировать элементарные изображения jpg, разрешения, допустим 100х100. Состоять будут из 4 разных цветов. Может, кто-то даст ссылку на статью/пример кода?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2013, 17:49
Ответы с готовыми решениями:

Есть н цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит пользователь
Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов....

Создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее пиксели одинакового цвета
Необходимо создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее...

Генерация n цветов
Вопрос наверно глуповат, и не совсем по теме Qt, но все же... Как правильно сгенерировать...

фон разных цветов
Нужно написать программу, которая будет выводить фон разных цветов, шахматное поле, горизонтальные...

9
Master of Orion
Эксперт .NET
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
27.03.2013, 18:09 2
Перебор пикселей на изображениях занимает очень много времени
1
773 / 553 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
27.03.2013, 18:24 3
C#
1
2
3
4
5
6
7
     Bitmap bmp = new Bitmap(100, 100);
            Graphics gr = Graphics.FromImage(bmp);
            gr.DrawRectangle(Pens.Bisque, new Rectangle(0, 0, 25, 25));
            gr.DrawRectangle(Pens.Brown,  new Rectangle(0, 25, 25, 25));
            gr.DrawRectangle(Pens.Cyan ,  new Rectangle(25, 25, 25, 25));
            gr.DrawRectangle(Pens.Green,  new Rectangle(25, 0, 25, 25));
            bmp.Save("image.jpg");
1
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
27.03.2013, 19:12  [ТС] 4
В общем, почти вышло.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public Invite(String filename)
    {
        Bitmap bmp = new Bitmap(50, 50);
        Random random = new Random();
        for (int a = 0; a < 50; a += 25)
        {
            Color c = Color.FromArgb(random.Next(255), random.Next(255), random.Next(255));
            for (int i = a; i < a + 25; i++)
            {
                for (int j = a; j < a + 25; j++)
                {
                    bmp.SetPixel(i, j, c);
                }
            }
        }
        bmp.Save(filename, System.Drawing.Imaging.ImageFormat.Jpeg);
    }

Но вместо что-то вроде Название: small_29785.png
Просмотров: 359

Размер: 272 байт получается Название: 1.jpg
Просмотров: 359

Размер: 1,001 байт. Что-то не то у меня с отрисовкой. И да, у меня генерируется поток изображений, и почему-то 4 подряд идут одинаковые
0
Master of Orion
Эксперт .NET
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
27.03.2013, 19:34 5
Izobara, либо используйте unsafe-код который я скинул, либо Graphics. SetPixel - очень-очень плохо, фу-фу
1
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
27.03.2013, 20:05  [ТС] 6
Psilon, теперь что скажете? Теперь проблема только в генерации 4 подряд одинаковых.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Drawing;
 
class _Main
{
    public static void Main()
    {
        Console.WriteLine("Сколько Вы хотите генерировать изображений?");
        int n = Convert.ToInt32(Console.ReadLine());
        Invite invite = new Invite();
        for (int index = 0; index < n; index++)
        {
            String name = Convert.ToString(index + 1)+".jpg";
            invite.Inviter(name);
        }
    }
}
class Invite
{
    Random randomGen;
    public void Inviter(String filename)
    {
        Bitmap bmp = new Bitmap(50, 50);
        randomGen = new Random();
        Graphics gr = Graphics.FromImage(bmp);
        gr.FillRectangle(CreateRandomBrush(), new Rectangle(0, 0, 25, 25));
        gr.FillRectangle(CreateRandomBrush(), new Rectangle(0, 25, 25, 25));
        gr.FillRectangle(CreateRandomBrush(), new Rectangle(25, 25, 25, 25));
        gr.FillRectangle(CreateRandomBrush(), new Rectangle(25, 0, 25, 25));
        bmp.Save(filename, System.Drawing.Imaging.ImageFormat.Jpeg);
    }
    private SolidBrush CreateRandomBrush()
    {
        SolidBrush bBrush = new SolidBrush(Color.FromArgb(randomGen.Next(255), randomGen.Next(255), randomGen.Next(255)));
        return bBrush;
    }
}
0
773 / 553 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
27.03.2013, 20:33 7
Izobara, Рэндом нужно вынести за пределы метода Inviter
C#
1
2
3
4
5
Random randomGen = new Random();
   public void Inviter(String filename)
    {
     .........
    }
1
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
27.03.2013, 20:41  [ТС] 8
Фух... Работает...
0
Master of Orion
Эксперт .NET
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
27.03.2013, 20:46 9
Izobara, такая ошибка - для новичка стандартная Почитайте про то, как работает random, что такое random seed и прочее. И почему нельзя в цикле создавать рандом, а лучше его создать один раз, причем статически. Кстати, по этой же причине мне пришлось делать свой собственный класс рандома, когда из-за многопоточности последовательности выходили, мягко говоря, коррелированными.
1
0 / 0 / 0
Регистрация: 23.09.2017
Сообщений: 27
26.09.2017, 23:27 10
Нужен Генератор Изображений
Миниатюры
Генерация элементарного изображения из 4 разных цветов  
0
26.09.2017, 23:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2017, 23:27
Помогаю со студенческими работами здесь

Заголовок разных цветов
Как реализовать на jQuery следующий эффект: Двухсловный заголовок Трех словный заголовок Т.е....

Строки разных цветов
Помогите разобраться с цветом в консольном приложении. Задача может оказаться довольно проста для...

Звездочки разных цветов
Нужно разбросать звездочки разных цветов и размеров. Нарисовал звезду, импортировал во фрагмент...

Рисование полос разных цветов
Доброго времени суток форумчане помогите запутался в самом простом координаты полос в цикле чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru