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

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

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

Author24 — интернет-сервис помощи студентам
Нужно как-то генерировать элементарные изображения jpg, разрешения, допустим 100х100. Состоять будут из 4 разных цветов. Может, кто-то даст ссылку на статью/пример кода?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2013, 17:49
Ответы с готовыми решениями:

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

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

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

9
Master of Orion
Эксперт .NET
 Аватар для Psilon
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
27.03.2013, 18:09 2
Перебор пикселей на изображениях занимает очень много времени
1
774 / 554 / 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
СуперМодулятор
 Аватар для Bringoff
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
 Аватар для Psilon
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
27.03.2013, 19:34 5
Izobara, либо используйте unsafe-код который я скинул, либо Graphics. SetPixel - очень-очень плохо, фу-фу
1
СуперМодулятор
 Аватар для Bringoff
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
774 / 554 / 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
СуперМодулятор
 Аватар для Bringoff
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
27.03.2013, 20:41  [ТС] 8
Фух... Работает...
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2017, 23:27
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH 1. поймать путь через вывод $(pwd) 2. более правильно - на основе realpath (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
PHP 8: JIT-компиляция и улучшение производительно­сти
Jason-Webb 13.03.2025
PHP никогда не славился своей скоростью. Многие сталкивались с проблемами производительности при работе со сложными вычислениями или обработкой больших объемов данных. Традиционная модель выполнения. . .
Сериализация данных с Apache Avro в Kafka
Javaican 12.03.2025
Apache Kafka стала одним из ключевых решений для работы с большими потоками данных. Однако с ростом объемов передаваемых данных возникает проблема: как эффективно сериализовать и десериализовать. . .
Создание потребителей Kafka с помощью Reactor Kafka
Javaican 12.03.2025
Reactor Kafka — это библиотека, объединяющая Apache Kafka с реактивным программированием на базе Project Reactor. Такое сочетание позволяет строить неблокирующие, асинхронные приложения с контролем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru