Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как раскрасить картику? 
:(
    Опции темы
Win MK 32
Дата 12.1.2009, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Какими цветом на каком фоне надо наривать картинку в графическом редакторе, чтобы можно было ее раскрасить?

Затея такая: нарисовать каждую букву. А потом програмно выводить их разными цветами.

Вот код для открытия картинки и ее вывода
Код

      static void SetPicture(byte[] img, string fileName) {
         int i;
         Bitmap bmp = Bitmap.FromFile(fileName) as Bitmap;
         i = 0;
         for(int x = 0; x < bmp.Width; x++) {
            for(int y = 0; y < bmp.Height; y++) {
               img[i+2]=bmp.GetPixel(y, x).R; //2
               img[i+1]=bmp.GetPixel(y, x).G; //1
               img[i+0]=bmp.GetPixel(y, x).B; //0
               i=i+3;
            }
         }
      }

PM   Вверх
CompWorm
Дата 12.1.2009, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



типа текст нарисовать? при чем тут картинка?
Код

            // создаем объект Pen
            Pen PenGold  = new Pen(Color.Gold,  3);
            // создаем объект Тext
            Font FontTahoma = new Font("Tahoma", 8);
            SolidBrush BrushGold = new SolidBrush(Color.Gold);

            // создаем объект Graphics
            Graphics Panel1Graphics = panel1.CreateGraphics();
            Panel1Graphics.Clear(Color.FromArgb (255, 0, 0, 64));

            // рисуем текст
            Panel1Graphics.DrawString("бла бла бла", FontTahoma, BrushGold, 2, 10);




--------------------
PM MAIL   Вверх
Win MK 32
Дата 12.1.2009, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



CompWorm, мне надо для спец-девайса smile
А можно чтобы в итоге получилась картинка из нескольких букв?

Добавлено через 13 секунд
Bitmap
PM   Вверх
Bishop
Дата 12.1.2009, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 3.6.2005
Где: Минск, Беларусь

Репутация: 6
Всего: 16



Win MK 32, да какая разница для чего smile
Создай битмап, получи его контекст и рисуй, что угодно:
Код

int bmp_size = 32;
Bitmap bmp = new Bitmap(bmp_size, bmp_size);

Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);
g.DrawString("A", SystemFonts.CaptionFont, Brushes.Black, 5, 5);
g.Dispose();


Но можно и цвета заменять:
Код

// using System.Drawing.Imaging;
Bitmap bmp = Image.FromFile(@"d:\1.bmp") as Bitmap;

ColorMap cm = new ColorMap();
cm.OldColor = Color.Black; // этот цвет будет заменён
cm.NewColor = Color.GreenYellow; // на этот
ImageAttributes ia = new ImageAttributes();
ia.SetRemapTable(new ColorMap[] { cm });

Bitmap newBmp = new Bitmap(bmp.Width, bmp.Height); // всё равно новый битмап
Graphics g = Graphics.FromImage(newBmp);
g.DrawImage(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel, ia);
g.Dispose();

PM WWW ICQ   Вверх
Win MK 32
Дата 12.1.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



----

Это сообщение отредактировал(а) Win MK 32 - 12.1.2009, 15:54
PM   Вверх
Win MK 32
Дата 12.1.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Код

int bmp_size = 32;
Bitmap bmp = new Bitmap(bmp_size, bmp_size);

Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);
g.DrawString("A", SystemFonts.CaptionFont, Brushes.Black, 5, 5);
g.Dispose();

А как заставить чтобы белым по черному надпись была? Точнее, чтобы весь фон черный был, а не только под надписью.
Вот так выходит только под самой надписью черная полоска, остальное белое:
Цитата

      int bmp_size = 96;
      Bitmap bmp = new Bitmap(bmp_size, bmp_size);

      Graphics g = Graphics.FromImage(bmp);
      g.Clear(Color.Black);
      g.DrawString("Текст", SystemFonts.CaptionFont, Brushes.White, 5, 5);
      g.Dispose();

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.