use of org.jwildfire.create.tina.io.FlameWriter in project JWildfire by thargor6.
the class RenderMainFlameThread method run.
@Override
public void run() {
finished = forceAbort = false;
try {
int width = resProfile.getWidth();
int height = resProfile.getHeight();
RenderInfo info = new RenderInfo(width, height, RenderMode.PRODUCTION);
double wScl = (double) info.getImageWidth() / (double) flame.getWidth();
double hScl = (double) info.getImageHeight() / (double) flame.getHeight();
flame.setPixelsPerUnit((wScl + hScl) * 0.5 * flame.getPixelsPerUnit());
flame.setWidth(info.getImageWidth());
flame.setHeight(info.getImageHeight());
boolean renderHDR = qualProfile.isWithHDR();
info.setRenderHDR(renderHDR);
boolean renderZBuffer = qualProfile.isWithZBuffer();
info.setRenderZBuffer(renderZBuffer);
flame.setSampleDensity(qualProfile.getQuality());
long t0, t1;
renderer = new FlameRenderer(flame, prefs, flame.isBGTransparency(), false);
renderer.setProgressUpdater(progressUpdater);
t0 = Calendar.getInstance().getTimeInMillis();
RenderedFlame res = renderer.renderFlame(info);
if (forceAbort) {
finished = true;
return;
}
t1 = Calendar.getInstance().getTimeInMillis();
new ImageWriter().saveImage(res.getImage(), outFile.getAbsolutePath());
if (res.getHDRImage() != null) {
new ImageWriter().saveImage(res.getHDRImage(), Tools.makeHDRFilename(outFile.getAbsolutePath()));
}
if (res.getZBuffer() != null) {
new ImageWriter().saveImage(res.getZBuffer(), Tools.makeZBufferFilename(outFile.getAbsolutePath()));
}
if (prefs.isTinaSaveFlamesWhenImageIsSaved()) {
new FlameWriter().writeFlame(flame, outFile.getParentFile().getAbsolutePath() + File.separator + Tools.trimFileExt(outFile.getName()) + ".flame");
}
finished = true;
finishEvent.succeeded((t1 - t0) * 0.001);
} catch (Throwable ex) {
finished = true;
finishEvent.failed(ex);
}
}
use of org.jwildfire.create.tina.io.FlameWriter in project JWildfire by thargor6.
the class Boarders2Test method visual.
// @Ignore
@Test
public void visual() throws Exception {
Prefs.getPrefs().setTinaRandomNumberGenerator(RandomGeneratorType.JAVA_INTERNAL);
System.out.println(Prefs.getPrefs().getTinaRandomNumberGenerator().name());
int side = 600;
ResolutionProfile respro = new ResolutionProfile(true, side, side);
int quality = 80;
Flame f = new Flame();
f.setWidth(side);
f.setHeight(side);
f.setGamma(4.0);
f.setBGTransparency(false);
f.setAntialiasAmount(1.0);
f.setAntialiasRadius(.1);
Layer l = new Layer();
XForm xf = new XForm();
Boarders2Func bf = new Boarders2Func();
bf.setParameter("c", .6);
bf.setParameter("left", .65);
bf.setParameter("right", .35);
xf.addVariation(1.0, bf);
f.setCamZoom(6.461);
xf.setWeight(5.5);
l.getXForms().add(xf);
RGBPalette pal = new RGBPalette();
for (int i = 0; i < 256; i++) pal.addColor(0, i, 255);
pal.setFlam3Name("test");
l.setPalette(pal);
f.setResolutionProfile(respro);
f.getLayers().clear();
f.getLayers().add(l);
// this is "scale"
f.setPixelsPerUnit(43.75);
new FlameWriter().writeFlame(f, "/dev/shm/test.flame");
JobRenderThreadController controller = new HeadlessBatchRendererController();
List<Job> joblist = new ArrayList<>();
Job j = new Job();
j.setCustomHeight(side);
j.setCustomWidth(side);
j.setCustomQuality(quality);
j.setFlameFilename("/dev/shm/test.flame");
joblist.add(j);
QualityProfile qualpro = new QualityProfile();
qualpro.setQuality(quality);
JobRenderThread job = new JobRenderThread(controller, joblist, respro, qualpro, true);
job.run();
}
use of org.jwildfire.create.tina.io.FlameWriter in project JWildfire by thargor6.
the class JWildfireApplet method copyToClipboardBtn_clicked.
protected void copyToClipboardBtn_clicked() throws Exception {
Flame currFlame = getCurrFlame();
if (currFlame != null) {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
String xml = new FlameWriter().getFlameXML(currFlame);
StringSelection data = new StringSelection(xml);
clipboard.setContents(data, data);
}
}
use of org.jwildfire.create.tina.io.FlameWriter in project JWildfire by thargor6.
the class FlamesGPURenderController method toClipboardButton_clicked.
public void toClipboardButton_clicked() {
try {
Flame currFlame = getCurrFlame();
if (currFlame != null) {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
String xml = new FlameWriter().getFlameXML(currFlame);
StringSelection data = new StringSelection(xml);
clipboard.setContents(data, data);
}
} catch (Throwable ex) {
errorHandler.handleError(ex);
}
}
use of org.jwildfire.create.tina.io.FlameWriter in project JWildfire by thargor6.
the class FlamesGPURenderController method saveFlameButton_clicked.
public void saveFlameButton_clicked() {
try {
Flame currFlame = getCurrFlame();
if (currFlame != null) {
JFileChooser chooser = new FlameFileChooser(prefs);
if (prefs.getOutputFlamePath() != null) {
try {
chooser.setCurrentDirectory(new File(prefs.getOutputFlamePath()));
} catch (Exception ex) {
ex.printStackTrace();
}
}
if (chooser.showSaveDialog(imageRootPanel) == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
new FlameWriter().writeFlame(currFlame, file.getAbsolutePath());
prefs.setLastOutputFlameFile(file);
}
}
} catch (Throwable ex) {
errorHandler.handleError(ex);
}
}
Aggregations