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

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

27.08.2008, 17:54. Показов 1723. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.08.2008, 17:54
Ответы с готовыми решениями:

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

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

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

3
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
27.08.2008, 21:48
Есть такая библиотека для создания графических файлов :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  [ТС]
Спасибо,

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
Смотри следующий класс:

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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.09.2008, 16:44
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru