Создать картинку "на лету"

 
 
 
Сообщения:19
Господа, я еще новичок в Java, поэтому вопрос примитивный, наверное.

Мне нужно в моем консольном приложении создавать картинки на лету, рисовать на них таблицы (несколько строк и несколько столбцов) и сохранять на диск в jpg-формате.
Подскажите пожалуйста, как лучше это реализовать?

Как я понял, лучше создавать объект класса BufferedImage. А что дальше?
 
 
Сообщения:822
 public static void main( String[] args )
    {
        BufferedImage image = new BufferedImage(640, 480, BufferedImage.TYPE_4BYTE_ABGR_PRE);
        
        Graphics g = image.getGraphics();
        
        g.drawLine( 0, 0, 640, 480);
        
        File outputfile = new File("image.jpg");
        try
        {
            ImageIO.write(image, "jpg", outputfile);
        }
        catch( IOException ex )
        {
            System.out.println( "ubung.Ubung5_BufferedImage.main() " + ex );
        }
    }
 
 
Сообщения:19
windruf:
 public static void main( String[] args )
 


Спасибо! Скажите, а почему картинка с розовым фоном? Параметр BufferedImage.TYPE_4BYTE_ABGR_PRE повлиял?
И как лучше: Graphics g = image.getGraphics();
или
Graphics2D g = output.createGraphics();
 
 
Сообщения:822
barv:
Скажите, а почему картинка с розовым фоном?

без понятия, я так глубоко не копал. но, если надо, то можешь вызвать g.fillRect

barv:
И как лучше: Graphics g = image.getGraphics();
или
Graphics2D g = output.createGraphics();

обе методы возвращают одно и то-же. просто первая возвращает старый интерфейс, нужный для обратной совместимости, а вторая - унаследованный от него с кучей плюшек.
в принципе так тоже работает: Graphics2D g = (Graphics2D) image.getGraphics();
но лучше бери вторую методу - проще и примочек больше.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет