Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 27.08.2008
Сообщений: 5
1

Java3D, отрендеренную картинку нужно сохранять в файл на диск, а не отображать на экране

27.08.2008, 17:54. Показов 1453. Ответов 3
Метки нет (Все метки)

Вот есть простой стандартный пример:

Java
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
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.*;
import com.sun.j3d.utils.applet.MainFrame; 
import com.sun.j3d.utils.universe.*; 
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.*;
import javax.vecmath.*;
 
public class HelloJava3Da extends Applet {
public HelloJava3Da() {
setLayout(new BorderLayout());
Canvas3D canvas3D = new Canvas3D(null);
add('Center', canvas3D);
BranchGroup scene = createSceneGraph();
SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
simpleU.getViewingPlatform().setNominalViewingTransform();
simpleU.addBranchGraph(scene);
}
public BranchGroup createSceneGraph() {
BranchGroup objRoot = new BranchGroup();
objRoot.addChild(new ColorCube(0.4));
return objRoot;
}
public static void main(String[] args) {
Frame frame = new MainFrame(new HelloJava3Da(), 256, 256);
}
}
этот пример рисует прямоугольник, нужно позарез результат выводить не в окошке, а в файл, как это сделать?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.08.2008, 17:54
Ответы с готовыми решениями:

Как сохранять данные из Combobox в файл и потом отображать данные из файла в Combobox-e?
как сохранять данные из Combobox в файл и потом отображать данные из файла в Combobox-e?

Если я пишу программу на языке Delphi в блокноте, то в каком формате нужно сохранять файл?
если я пишу программу на языке Delphi в блокноте , то в каком формате нужно сохранять ?

Регистрация: 02.07.2004 Сообщений: 51 SaveAs Мне нужно сохранять временный файл, не привязывясь к каталогу
Мне нужно сохранять временный файл, не привязывясь к каталогу. Конструкция типа With...

Как отображать картинку не из кэша?
замучало начальство мол картинки не так прорисовываются когда вывожу... обрезаются... При этом во...

3
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
27.08.2008, 21:48 2
Есть такая библиотека для создания графических файлов :Java Image Management Interface (JIMI)

создала её контора Activated Intelligence и вроде бы продала Sun
на их сайте найдёшь описание с простыми примерами
http://www.activated.com/products/jimi/jimi.html
а качать с Sun
http://java.sun.com/products/jimi/
0
0 / 0 / 0
Регистрация: 27.08.2008
Сообщений: 5
28.08.2008, 12:26  [ТС] 3
Спасибо,

Java
1
2
Image image = Jimi.getImage('myImage.PSD');
Jimi.putImage(image, 'myImage.PNG');
вот так можно прочитать и записать графический файл с помощью Jimi, но у меня Canvas3D
Java
1
canvas3D = new Canvas3D(null);
смогу ли я 'canvas3D' сохранить как :'Jimi.putImage(canvas3D, 'myImage.tif');'.
Вообщем как Canvas3D в файл перегнать?
0
0 / 0 / 0
Регистрация: 02.09.2008
Сообщений: 9
02.09.2008, 16:44 4
Смотри следующий класс:

Java
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
import java.awt.GraphicsConfiguration;
import java.awt.image.BufferedImage;
import javax.media.j3d.*;
import javax.vecmath.*;
 
public class OffScreenCanvas3D extends Canvas3D
{
    public OffScreenCanvas3D(GraphicsConfiguration graphicsConfiguration, boolean offScreen)
    {
        super(graphicsConfiguration, offScreen);
    }
 
    public BufferedImage doRender(int width, int height)
    {
        BufferedImage bImage =
            new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);//TYPE_3BYTE_BGR);// .TYPE_INT_ARGB);//
 
        ImageComponent2D buffer =
            new ImageComponent2D(ImageComponent.FORMAT_RGB, bImage);
 
        setOffScreenBuffer(buffer);
        renderOffScreenBuffer();
        waitForOffScreenRendering();
        bImage = getOffScreenBuffer().getImage();
 
        return bImage;
    }
 
    public void postSwap()
    {
        // No-op since we always wait for off-screen rendering to complete
    }
}
И затем следующий кусок кода:
Java
1
BufferedImage bImage = offScreenCanvas3D_m.doRender(width, height);
Думаю - разберешся.
Если не получится - попробую ответить подробнее. (Пока время на это нет).

А так код работает в отличии от других предложений, встречающихся на этом форуме.

Bye.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2008, 16:44

Программная архивация данных, не отображать процесс на экране
Здравствуйте. Нужна Ваша помощь. Архивирую программно папку с помощью winrar, но вот меня смущает...

C++ Аналитик: постоянно анализировать данные и отображать выводы на экране
Всем привет! Столкнулся с необходимостью написания программы, которая будет постоянно анализировать...

Сохранять картинку с интернета на жесткий каждую минуту
рылся рылся не нашел, точнее не понял как, xmlhttpRequest и FileSystemObject с помощью них можно...

код который будет отображать выбранную картинку в Негативе
Здраствуйте,это снова я и мне нужна помощь по решению одной интересной задачки Нужно написать код...

Нужно записать с помощью FileSystemObject файл на диск сервера.
Вот встретился с проблемой и не знаю что делать дальше Мне нужно записать с помощью...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.