Search in sources :

Example 21 with RGBPalette

use of org.jwildfire.create.tina.palette.RGBPalette in project JWildfire by thargor6.

the class Flam3GradientReader method readPalettesFromXML.

public List<RGBPalette> readPalettesFromXML(String pXML) {
    List<RGBPalette> res = new ArrayList<RGBPalette>();
    int pPalettes = 0;
    while (true) {
        String paletteXML;
        {
            int ps = pXML.indexOf("<palette ", pPalettes);
            if (ps < 0)
                break;
            int pe = pXML.indexOf("/>", ps + 1);
            if (pe < 0)
                break;
            pPalettes = pe + 2;
            paletteXML = pXML.substring(ps, pPalettes);
        }
        RGBPalette palette = new RGBPalette();
        res.add(palette);
        {
            int ps = paletteXML.indexOf("<flame ");
            int pe = -1;
            boolean qt = false;
            for (int i = ps + 1; i < paletteXML.length(); i++) {
                if (paletteXML.charAt(i) == '\"') {
                    qt = !qt;
                } else if (!qt && paletteXML.charAt(i) == '>') {
                    pe = i;
                    break;
                }
            }
            String hs = paletteXML.substring(ps + 7, pe);
            parsePaletteAttributes(palette, hs);
        }
    }
    return res;
}
Also used : RGBPalette(org.jwildfire.create.tina.palette.RGBPalette) ArrayList(java.util.ArrayList)

Example 22 with RGBPalette

use of org.jwildfire.create.tina.palette.RGBPalette in project JWildfire by thargor6.

the class MapGradientReader method readPaletteFromMapData.

public List<RGBPalette> readPaletteFromMapData(String pMapData, String pFilename) {
    List<RGBPalette> res = new ArrayList<RGBPalette>();
    RGBPalette gradient = new RGBPalette();
    res.add(gradient);
    gradient.setFlam3Name(new File(pFilename).getName());
    StringTokenizer tokenizer = new StringTokenizer(pMapData, "\n\r");
    int idx = 0;
    Map<Integer, RGBColor> colors = new HashMap<Integer, RGBColor>();
    while (tokenizer.hasMoreElements()) {
        String line = tokenizer.nextToken();
        StringTokenizer lineTokenizer = new StringTokenizer(line, "\t ");
        int r, g, b;
        try {
            r = Integer.parseInt(((String) lineTokenizer.nextElement()).trim());
            g = Integer.parseInt(((String) lineTokenizer.nextElement()).trim());
            b = Integer.parseInt(((String) lineTokenizer.nextElement()).trim());
        } catch (Exception ex) {
            break;
        }
        if (r >= 0 && r <= 255 && g >= 0 && g <= 255 && b >= 0 && b <= 255) {
            RGBColor color = new RGBColor(r, g, b);
            colors.put(idx++, color);
        } else {
            break;
        }
    }
    gradient.setColors(colors, false, false);
    return res;
}
Also used : StringTokenizer(java.util.StringTokenizer) HashMap(java.util.HashMap) RGBPalette(org.jwildfire.create.tina.palette.RGBPalette) ArrayList(java.util.ArrayList) RGBColor(org.jwildfire.create.tina.palette.RGBColor) File(java.io.File)

Example 23 with RGBPalette

use of org.jwildfire.create.tina.palette.RGBPalette in project JWildfire by thargor6.

the class UgrGradientReader method readPalettesFromUgr.

public List<RGBPalette> readPalettesFromUgr(String pUgr) {
    List<RGBPalette> res = new ArrayList<RGBPalette>();
    int pPalettes = 0;
    while (true) {
        String paletteUgr;
        {
            int ps = pUgr.indexOf("{", pPalettes);
            if (ps < 0)
                break;
            int pe = pUgr.indexOf("}", ps + 1);
            if (pe < 0)
                break;
            pPalettes = pe + 1;
            paletteUgr = pUgr.substring(ps, pPalettes);
        }
        if (paletteUgr.contains("title=\"") && paletteUgr.contains("color=") && paletteUgr.contains("index=")) {
            RGBPalette palette = new RGBPalette();
            res.add(palette);
            parsePalette(palette, paletteUgr);
        }
    }
    return res;
}
Also used : RGBPalette(org.jwildfire.create.tina.palette.RGBPalette) ArrayList(java.util.ArrayList)

Example 24 with RGBPalette

use of org.jwildfire.create.tina.palette.RGBPalette in project JWildfire by thargor6.

the class FACLFlameWriter method addGradient.

private void addGradient(SimpleXMLBuilder xb, Layer layer) {
    RGBPalette palette = layer.getPalette();
    for (int i = 0; i < 256; i++) {
        List<SimpleXMLBuilder.Attribute<?>> attrList = new ArrayList<>();
        attrList.add(new Attribute<Integer>("index", i));
        String rgbStr = palette.getColor(i).getRed() + " " + palette.getColor(i).getGreen() + " " + palette.getColor(i).getBlue();
        attrList.add(new Attribute<String>("rgb", rgbStr));
        xb.simpleElement("color", null, attrList);
    }
}
Also used : Attribute(org.jwildfire.create.tina.io.SimpleXMLBuilder.Attribute) RGBPalette(org.jwildfire.create.tina.palette.RGBPalette) ArrayList(java.util.ArrayList)

Example 25 with RGBPalette

use of org.jwildfire.create.tina.palette.RGBPalette in project JWildfire by thargor6.

the class PolylogarithmTest method visual.

@Test
@Ignore
public void visual() throws Exception {
    int side = 400;
    ResolutionProfile respro = new ResolutionProfile(true, side, side);
    int quality = 200;
    Flame f = new Flame();
    f.setWidth(side);
    f.setHeight(side);
    f.setGamma(4.0);
    f.setBGTransparency(false);
    f.setAntialiasAmount(.1);
    f.setAntialiasRadius(.1);
    Layer l = new Layer();
    XForm xf = new XForm();
    SquishFunc df = new SquishFunc();
    df.setParameter("power", 10);
    xf.addVariation(1, df);
    PolylogarithmFunc bf = new PolylogarithmFunc();
    bf.setParameter("n", 2);
    bf.setParameter("zpow", 1);
    xf.addVariation(.1, bf);
    f.setCamZoom(6);
    xf.setWeight(10);
    l.getXForms().add(xf);
    RGBPalette pal = new RGBPalette();
    for (int i = 0; i < 256; i++) pal.addColor(0, i, 255);
    pal.setFlam3Name("PolylogarithmFunc");
    l.setPalette(pal);
    f.setResolutionProfile(respro);
    f.getLayers().clear();
    f.getLayers().add(l);
    f.setPixelsPerUnit(43.75);
    new FlameWriter().writeFlame(f, "/dev/shm/PolylogarithmFunc.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/PolylogarithmFunc.flame");
    joblist.add(j);
    QualityProfile qualpro = new QualityProfile();
    qualpro.setQuality(quality);
    JobRenderThread job = new JobRenderThread(controller, joblist, respro, qualpro, true);
    job.run();
}
Also used : ResolutionProfile(org.jwildfire.base.ResolutionProfile) XForm(org.jwildfire.create.tina.base.XForm) RGBPalette(org.jwildfire.create.tina.palette.RGBPalette) HeadlessBatchRendererController(org.jwildfire.create.tina.batch.HeadlessBatchRendererController) ArrayList(java.util.ArrayList) Layer(org.jwildfire.create.tina.base.Layer) FlameWriter(org.jwildfire.create.tina.io.FlameWriter) JobRenderThread(org.jwildfire.create.tina.batch.JobRenderThread) QualityProfile(org.jwildfire.base.QualityProfile) Job(org.jwildfire.create.tina.batch.Job) JobRenderThreadController(org.jwildfire.create.tina.batch.JobRenderThreadController) Flame(org.jwildfire.create.tina.base.Flame) Ignore(org.junit.Ignore) Test(org.junit.Test)

Aggregations

RGBPalette (org.jwildfire.create.tina.palette.RGBPalette)29 ArrayList (java.util.ArrayList)12 Layer (org.jwildfire.create.tina.base.Layer)9 File (java.io.File)8 Flame (org.jwildfire.create.tina.base.Flame)8 RGBColor (org.jwildfire.create.tina.palette.RGBColor)5 RenderedFlame (org.jwildfire.create.tina.render.RenderedFlame)5 SimpleImage (org.jwildfire.image.SimpleImage)5 Field (java.lang.reflect.Field)4 JFileChooser (javax.swing.JFileChooser)4 XForm (org.jwildfire.create.tina.base.XForm)4 ImageReader (org.jwildfire.io.ImageReader)4 List (java.util.List)3 MedianCutQuantizer (org.jwildfire.create.tina.palette.MedianCutQuantizer)3 HashMap (java.util.HashMap)2 JLabel (javax.swing.JLabel)2 Test (org.junit.Test)2 QualityProfile (org.jwildfire.base.QualityProfile)2 ResolutionProfile (org.jwildfire.base.ResolutionProfile)2 MotionCurve (org.jwildfire.create.tina.base.motion.MotionCurve)2