Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.126.11] |
|
Сообщ.
#1
,
|
|
|
В общем всем привет, не знаю куда написать - напушу здесь...
Вопрос такой: Каким образом можно создать в памяти картинку заданного размера, понарисовать в неё различных прямоугольничков, точек и линий, а потом передать дальше по return? Например на Java я делал это так: public Image getIm(int H,int W){ Color c = new Color(0,0,0); BufferedImage bi = new BufferedImage(W, H,BufferedImage.TYPE_INT_ARGB); Graphics2D g=bi.createGraphics(); g.setColor(c.WHITE); g.fillRect(0, 0, W-1, H-1); //рисуем... return (Image)bi; } В эклипсе BufferedImage подключается import java.awt.image.*, а J++ под вижуал стидией в java.awt.Image; такого класса нет. и java.awt.Graphics2D тоже нет. |
Сообщ.
#2
,
|
|
|
В каком окружении выполняется этот код? Доступны ли объекты java.awt.Component?
|
Сообщ.
#3
,
|
|
|
А что такое окружение и как определить доступны ли они?
Добавлено Я вообще щас пытаюсь провернуть обходной манёвр. Сделал так : Image bi = Toolkit.getDefaultToolkit().createImage(new byte[1], 1, 1); bi = bi.getScaledInstance(W, H, bi.SCALE_FAST); Graphics g = (Graphics)bi.getGraphics(); но ругается что Type 'java.awt.Image' is not assignable to 'System.Drawing.Image' При попытке прорисовать картинку в форму. Как можно сконвертировать java.awt.Image' в 'System.Drawing.Image' ? Добавлено в эклипсе правда такой манёвр кончается: getGraphics() not valid for images created with createImage(producer) java.lang.UnsupportedOperationException: getGraphics() not valid for images created with createImage(producer) вообще есть какой-нибудь способ рисовать картинки в памяти, а потом выводить их на форму, а не наоборот как это делается везде? (где уж я только не смотрел) |
Сообщ.
#4
,
|
|
|
Цитата Fiera @ А что такое окружение и как определить доступны ли они? Я имел в виду - gui или не gui. Но вы уже мой способ попробовали... |
Сообщ.
#5
,
|
|
|
В общем решение такое:
public Image getIm(int H,int W){ Color c = new Color(); Pen p=new Pen(c.get_DarkBlue(), 1); Image bi = new System.Drawing.Bitmap(W, H); Graphics g = Graphics.FromImage(bi); g.DrawRectangle(p,0, 0, W - 1, H - 1); //рисуем... return (Image)bi; } Пойду поем что-ли чонить... |