Search in sources :

Example 11 with RenderedFlame

use of org.jwildfire.create.tina.render.RenderedFlame in project JWildfire by thargor6.

the class TinaInteractiveRendererController method saveZBufferButton_clicked.

public void saveZBufferButton_clicked() {
    try {
        pauseRenderThreads();
        try {
            JFileChooser chooser = new ImageFileChooser(Tools.FILEEXT_PNG);
            if (prefs.getOutputImagePath() != null) {
                try {
                    chooser.setCurrentDirectory(new File(prefs.getOutputImagePath()));
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
            if (chooser.showSaveDialog(imageRootPanel) == JFileChooser.APPROVE_OPTION) {
                File file = chooser.getSelectedFile();
                double zBufferScale = Double.parseDouble(JOptionPane.showInputDialog(imageRootPanel, "Enter ZBuffer-Scale", currFlame.getZBufferScale()));
                currFlame.setZBufferScale(zBufferScale);
                RenderedFlame res = renderer.finishZBuffer(displayUpdater.getSampleCount());
                if (res.getZBuffer() != null) {
                    new ImageWriter().saveImage(res.getZBuffer(), file.getAbsolutePath());
                    if (autoLoadImageCBx.isSelected()) {
                        parentCtrl.mainController.loadImage(file.getAbsolutePath(), false);
                    }
                }
            }
        } finally {
            resumeRenderThreads();
        }
    } catch (Throwable ex) {
        errorHandler.handleError(ex);
    }
}
Also used : JFileChooser(javax.swing.JFileChooser) ImageFileChooser(org.jwildfire.swing.ImageFileChooser) ImageWriter(org.jwildfire.io.ImageWriter) File(java.io.File) RenderedFlame(org.jwildfire.create.tina.render.RenderedFlame)

Example 12 with RenderedFlame

use of org.jwildfire.create.tina.render.RenderedFlame 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);
    }
}
Also used : FlameWriter(org.jwildfire.create.tina.io.FlameWriter) ImageWriter(org.jwildfire.io.ImageWriter) FlameRenderer(org.jwildfire.create.tina.render.FlameRenderer) RenderInfo(org.jwildfire.create.tina.render.RenderInfo) RenderedFlame(org.jwildfire.create.tina.render.RenderedFlame)

Example 13 with RenderedFlame

use of org.jwildfire.create.tina.render.RenderedFlame in project JWildfire by thargor6.

the class JWFRenderFilePreview method createThumbnail.

public void createThumbnail() {
    if (currFile == null) {
        currThumbnail = null;
        return;
    }
    try {
        if (currFile.exists()) {
            JWFRenderHeader header = new JWFRenderHeaderReader().readRenderHeader(currFile.getAbsolutePath());
            Flame flame = header.getFlame();
            if (flame != null) {
                int imgWidth = this.getPreferredSize().width;
                int imgHeight = this.getPreferredSize().height;
                double wScl = (double) imgWidth / (double) flame.getWidth();
                double hScl = (double) imgHeight / (double) flame.getHeight();
                flame.setPixelsPerUnit((wScl + hScl) * 0.5 * flame.getPixelsPerUnit());
                flame.setWidth(imgWidth);
                flame.setHeight(imgHeight);
                FlameRenderer renderer = new FlameRenderer(flame, prefs, false, true);
                renderer.setProgressUpdater(null);
                flame.setSampleDensity(50);
                flame.setSpatialFilterRadius(0.0);
                RenderInfo info = new RenderInfo(imgWidth, imgHeight, RenderMode.PREVIEW);
                RenderedFlame res = renderer.renderFlame(info);
                currThumbnail = new ImageIcon(res.getImage().getBufferedImg());
            }
        }
    } catch (Exception ex) {
        currThumbnail = null;
        if (ex.getCause() != null) {
            ex.getCause().printStackTrace();
        } else {
            ex.printStackTrace();
        }
    }
}
Also used : ImageIcon(javax.swing.ImageIcon) FlameRenderer(org.jwildfire.create.tina.render.FlameRenderer) RenderInfo(org.jwildfire.create.tina.render.RenderInfo) JWFRenderHeader(org.jwildfire.create.tina.io.JWFRenderHeader) RenderedFlame(org.jwildfire.create.tina.render.RenderedFlame) JWFRenderHeaderReader(org.jwildfire.create.tina.io.JWFRenderHeaderReader) Flame(org.jwildfire.create.tina.base.Flame) RenderedFlame(org.jwildfire.create.tina.render.RenderedFlame)

Example 14 with RenderedFlame

use of org.jwildfire.create.tina.render.RenderedFlame in project JWildfire by thargor6.

the class TinaSWFAnimatorController method refreshFlameImage.

public void refreshFlameImage(boolean pQuickRender) {
    if (!noRefresh) {
        FlamePanel imgPanel = getFlamePanel();
        Rectangle bounds = imgPanel.getImageBounds();
        int width = bounds.width;
        int height = bounds.height;
        if (width >= 16 && height >= 16) {
            RenderInfo info = new RenderInfo(width, height, RenderMode.PREVIEW);
            Flame flame = getCurrFlame();
            if (flame != null) {
                double oldSpatialFilterRadius = flame.getSpatialFilterRadius();
                double oldSampleDensity = flame.getSampleDensity();
                try {
                    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());
                    FlameRenderer renderer = new FlameRenderer(flame, prefs, false, false);
                    if (pQuickRender) {
                        renderer.setProgressUpdater(null);
                        flame.setSampleDensity(1.0);
                        flame.setSpatialFilterRadius(0.0);
                    } else {
                        renderer.setProgressUpdater(renderProgressUpdater);
                        flame.setSampleDensity(prefs.getTinaRenderPreviewQuality());
                    }
                    RenderedFlame res = renderer.renderFlame(info);
                    imgPanel.setImage(res.getImage());
                } finally {
                    flame.setSpatialFilterRadius(oldSpatialFilterRadius);
                    flame.setSampleDensity(oldSampleDensity);
                }
            }
        } else {
            imgPanel.setImage(new SimpleImage(width, height));
        }
        swfAnimatorPreviewRootPanel.repaint();
    }
}
Also used : SimpleImage(org.jwildfire.image.SimpleImage) Rectangle(java.awt.Rectangle) FlamePanel(org.jwildfire.create.tina.swing.flamepanel.FlamePanel) FlameRenderer(org.jwildfire.create.tina.render.FlameRenderer) RenderInfo(org.jwildfire.create.tina.render.RenderInfo) RenderedFlame(org.jwildfire.create.tina.render.RenderedFlame) Flame(org.jwildfire.create.tina.base.Flame) RenderedFlame(org.jwildfire.create.tina.render.RenderedFlame)

Example 15 with RenderedFlame

use of org.jwildfire.create.tina.render.RenderedFlame in project JWildfire by thargor6.

the class TinaSWFAnimatorController method createPartPreview.

private SimpleImage createPartPreview(final FlameMoviePart pPart, int imageWidth, int imageHeight) {
    RenderInfo info = new RenderInfo(imageWidth, imageHeight, RenderMode.PREVIEW);
    Flame flame = pPart.getFlame().makeCopy();
    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(imageWidth);
    flame.setHeight(imageHeight);
    FlameRenderer renderer = new FlameRenderer(flame, prefs, false, false);
    RenderedFlame res = renderer.renderFlame(info);
    return res.getImage();
}
Also used : FlameRenderer(org.jwildfire.create.tina.render.FlameRenderer) RenderInfo(org.jwildfire.create.tina.render.RenderInfo) RenderedFlame(org.jwildfire.create.tina.render.RenderedFlame) Flame(org.jwildfire.create.tina.base.Flame) RenderedFlame(org.jwildfire.create.tina.render.RenderedFlame)

Aggregations

RenderedFlame (org.jwildfire.create.tina.render.RenderedFlame)24 FlameRenderer (org.jwildfire.create.tina.render.FlameRenderer)22 RenderInfo (org.jwildfire.create.tina.render.RenderInfo)22 Flame (org.jwildfire.create.tina.base.Flame)18 SimpleImage (org.jwildfire.image.SimpleImage)11 Rectangle (java.awt.Rectangle)9 FlamePanel (org.jwildfire.create.tina.swing.flamepanel.FlamePanel)9 ImageWriter (org.jwildfire.io.ImageWriter)4 File (java.io.File)3 ImageIcon (javax.swing.ImageIcon)3 XYZProjectedPoint (org.jwildfire.create.tina.base.XYZProjectedPoint)3 FlameReader (org.jwildfire.create.tina.io.FlameReader)3 DrawFocusPointFlameRenderer (org.jwildfire.create.tina.render.DrawFocusPointFlameRenderer)3 FlamePanelConfig (org.jwildfire.create.tina.swing.flamepanel.FlamePanelConfig)3 JFileChooser (javax.swing.JFileChooser)2 Layer (org.jwildfire.create.tina.base.Layer)2 FlameWriter (org.jwildfire.create.tina.io.FlameWriter)2 ImageFileChooser (org.jwildfire.swing.ImageFileChooser)2 TextTransformer (org.jwildfire.transform.TextTransformer)2 Color (java.awt.Color)1