Package org.jwildfire.image

Examples of org.jwildfire.image.SimpleImage


    int height = fileImg.getHeight(null);
    BufferedImage bImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    Graphics g = bImg.getGraphics();
    g.drawImage(fileImg, 0, 0, null);
    fileImg = null;
    return new SimpleImage(bImg, width, height);
  }
View Full Code Here


  public boolean acceptsInputBufferType(BufferType pBufferType) {
    return pBufferType == BufferType.IMAGE;
  }

  protected void performImageTransformation(WFImage pImg) {
    SimpleImage img = (SimpleImage) pImg;
    final int BLOCK_SIZE = 64;
    final int imageWidth = pImg.getImageWidth();
    final int imageHeight = pImg.getImageHeight();
    final BufferedImage bufferedImg = img.getBufferedImg();
    final int[] pixels = new int[imageWidth * BLOCK_SIZE];
    final Pixel p = new Pixel();
    for (int b = 0; b < imageHeight; b += BLOCK_SIZE) {
      int blockSize = BLOCK_SIZE;
      int currHeight = b + BLOCK_SIZE;
View Full Code Here

  @Property(category = PropertyCategory.PRIMARY, description = "Y-coordinate of the centre")
  private int centreY = 400;

  @Override
  protected void performPixelTransformation(WFImage pImg) {
    SimpleImage img = (SimpleImage) pImg;
    double cx = centreX - 0.5;
    double cy = centreY - 0.5;
    double rZoom = 1.0 / zoom;

    int width = pImg.getImageWidth();
    int height = pImg.getImageHeight();

    double w1 = (double) width - 1.0;
    double h1 = (double) height - 1.0;
    Pixel pPixel = new Pixel();
    for (int pY = 0; pY < height; pY++) {
      for (int pX = 0; pX < width; pX++) {
        /* transform the point */
        double x0 = pX - cx;
        double y0 = pY - cy;
        double rr = Math.sqrt(x0 * x0 + y0 * y0);
        x0 *= rZoom;
        y0 *= rZoom;
        double scl;
        if (rr != 0.0)
          scl = (rr + amount) / rr;
        else
          scl = 0.0;
        double x = x0 * scl + cx;
        double y = y0 * scl + cy;

        /* render it */
        double xi = Tools.fmod33(x);
        double yi = Tools.fmod33(y);

        if ((x < 0.0) || (x > w1) || (y < 0.0) || (y > h1)) {
          pPixel.r = pPixel.g = pPixel.b = 0;
        }
        else {
          readSrcPixels(x, y);
          pPixel.r = roundColor(((1.0 - yi) * ((1.0 - xi) * (srcP.r) + xi * (srcQ.r)) + yi
              * ((1.0 - xi) * (srcR.r) + xi * (srcS.r))));
          pPixel.g = roundColor(((1.0 - yi) * ((1.0 - xi) * (srcP.g) + xi * (srcQ.g)) + yi
              * ((1.0 - xi) * (srcR.g) + xi * (srcS.g))));
          pPixel.b = roundColor(((1.0 - yi) * ((1.0 - xi) * (srcP.b) + xi * (srcQ.b)) + yi
              * ((1.0 - xi) * (srcR.b) + xi * (srcS.b))));
        }
        img.setRGB(pX, pY, pPixel.r, pPixel.g, pPixel.b);
      }
    }
  }
View Full Code Here

    int height = fileImg.getHeight(null);
    BufferedImage bImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    Graphics g = bImg.getGraphics();
    g.drawImage(fileImg, 0, 0, null);
    fileImg = null;
    return new SimpleImage(bImg, width, height);
  }
View Full Code Here

              RenderedFlame mergedRender = new RenderedFlame();
              localRenderInfo.setImageWidth(2 * pRenderInfo.getImageWidth());
              localRenderInfo.setImageHeight(leftRenders.length * pRenderInfo.getImageHeight());
              mergedRender.init(localRenderInfo);
              SimpleImage mergedImg = mergedRender.getImage();

              ComposeTransformer composeTransformer = new ComposeTransformer();
              composeTransformer.setHAlign(HAlignment.OFF);
              composeTransformer.setVAlign(VAlignment.OFF);

View Full Code Here

    RenderedFlame mergedRender = new RenderedFlame();
    localRenderInfo.setImageWidth(2 * leftRender.getImage().getImageWidth());
    localRenderInfo.setImageHeight(leftRender.getImage().getImageHeight());
    mergedRender.init(localRenderInfo);
    SimpleImage mergedImg = mergedRender.getImage();

    ComposeTransformer composeTransformer = new ComposeTransformer();
    composeTransformer.setHAlign(HAlignment.OFF);
    composeTransformer.setVAlign(VAlignment.OFF);
    composeTransformer.setForegroundImage(leftRender.getImage());
View Full Code Here

    Pixel lPixel = new Pixel();
    Pixel rPixel = new Pixel();
    Stereo3dColor leftColor = flame.getAnaglyph3dLeftEyeColor();
    Stereo3dColor rightColor = flame.getAnaglyph3dRightEyeColor();
    SimpleImage leftImg = leftRender.getImage();
    SimpleImage rightImg = rightRender.getImage();

    RenderedFlame mergedRender = new RenderedFlame();
    localRenderInfo.setImageWidth(leftRender.getImage().getImageWidth());
    localRenderInfo.setImageHeight(leftRender.getImage().getImageHeight());
    mergedRender.init(localRenderInfo);
    SimpleImage mergedImg = mergedRender.getImage();

    for (int i = 0; i < mergedImg.getImageHeight(); i++) {
      for (int j = 0; j < mergedImg.getImageWidth(); j++) {
        lPixel.setARGBValue(leftImg.getARGBValue(j, i));
        rPixel.setARGBValue(rightImg.getARGBValue(j, i));
        int mr = leftColor.calculateRed(lPixel.r, lPixel.g, lPixel.b) + rightColor.calculateRed(rPixel.r, rPixel.g, rPixel.b);
        if (mr < 0)
          mr = 0;
        else if (mr > 255)
          mr = 255;
        int mg = leftColor.calculateGreen(lPixel.r, lPixel.g, lPixel.b) + rightColor.calculateGreen(rPixel.r, rPixel.g, rPixel.b);
        if (mg < 0)
          mg = 0;
        else if (mg > 255)
          mg = 255;
        int mb = leftColor.calculateBlue(lPixel.r, lPixel.g, lPixel.b) + rightColor.calculateBlue(rPixel.r, rPixel.g, rPixel.b);
        if (mb < 0)
          mb = 0;
        else if (mb > 255)
          mb = 255;
        mergedImg.setRGB(j, i, mr, mg, mb);
      }
    }
    return mergedRender;
  }
View Full Code Here

      return res;
    }

    double origZoom = flame.getCamZoom();
    try {
      SimpleImage img = renderNormal ? res.getImage() : null;
      SimpleHDRImage hdrImg = renderHDR ? res.getHDRImage() : null;
      SimpleHDRImage hdrIntensityMapImg = renderHDRIntensityMap ? res.getHDRIntensityMap() : null;
      if (renderNormal) {
        initRaster(img.getImageWidth(), img.getImageHeight());
      }
      else if (renderHDR) {
        initRaster(hdrImg.getImageWidth(), hdrImg.getImageHeight());
      }
      else if (renderHDRIntensityMap) {
View Full Code Here

    int threadCount = prefs.getTinaRenderThreads() - 1;
    if (threadCount < 1)
      threadCount = 1;
    logDensityFilter.setRaster(raster, rasterWidth, rasterHeight, pImage.getImageWidth(), pImage.getImageHeight());
    if (renderScale == 2) {
      SimpleImage newImg = new SimpleImage(pImage.getImageWidth() * renderScale, pImage.getImageHeight() * renderScale);
      if (threadCount == 1) {
        LogDensityPoint logDensityPnt = new LogDensityPoint();
        GammaCorrectedRGBPoint rbgPoint = new GammaCorrectedRGBPoint();
        for (int i = 0; i < pImage.getImageHeight(); i++) {
          for (int j = 0; j < pImage.getImageWidth(); j++) {
            logDensityFilter.transformPointSimple(logDensityPnt, j, i);
            gammaCorrectionFilter.transformPoint(logDensityPnt, rbgPoint);
            int x = j * renderScale;
            int y = i * renderScale;

            newImg.setARGB(x, y, rbgPoint.alpha, rbgPoint.red, rbgPoint.green, rbgPoint.blue);
            newImg.setARGB(x + 1, y, rbgPoint.alpha, rbgPoint.red, rbgPoint.green, rbgPoint.blue);
            newImg.setARGB(x, y + 1, rbgPoint.alpha, rbgPoint.red, rbgPoint.green, rbgPoint.blue);
            newImg.setARGB(x + 1, y + 1, rbgPoint.alpha, rbgPoint.red, rbgPoint.green, rbgPoint.blue);
          }
        }
      }
      else {
        int rowsPerThread = pImage.getImageHeight() / threadCount;
        List<RenderImageSimpleScaledThread> threads = new ArrayList<RenderImageSimpleScaledThread>();
        for (int i = 0; i < threadCount; i++) {
          int startRow = i * rowsPerThread;
          int endRow = i < rowsPerThread - 1 ? startRow + rowsPerThread : pImage.getImageHeight();
          RenderImageSimpleScaledThread thread = new RenderImageSimpleScaledThread(startRow, endRow, pImage, newImg);
          threads.add(thread);
          thread.run();
        }
        while (true) {
          boolean ready = true;
          for (RenderImageSimpleScaledThread t : threads) {
            if (!t.isDone()) {
              ready = false;
              break;
            }
          }
          if (!ready) {
            try {
              Thread.sleep(1);
            }
            catch (InterruptedException e) {
              e.printStackTrace();
            }
          }
          else
            break;
        }
      }
      pImage.setBufferedImage(newImg.getBufferedImg(), newImg.getImageWidth(), newImg.getImageHeight());
    }
    else if (renderScale == 1) {
      if (threadCount == 1) {
        LogDensityPoint logDensityPnt = new LogDensityPoint();
        GammaCorrectedRGBPoint rbgPoint = new GammaCorrectedRGBPoint();
View Full Code Here

      int borderWidth = flameRootPanel.getBorder().getBorderInsets(flameRootPanel).left;
      int width = flameRootPanel.getWidth() - borderWidth;
      int height = flameRootPanel.getHeight() - borderWidth;
      if (width < 16 || height < 16)
        return null;
      SimpleImage img = new SimpleImage(width, height);
      img.fillBackground(0, 0, 0);
      flamePanel = new FlamePanel(prefs, img, 0, 0, flameRootPanel.getWidth() - borderWidth, null, null);
      flamePanel.setRenderWidth(640);
      flamePanel.setRenderHeight(480);
      flameRootPanel.add(flamePanel, BorderLayout.CENTER);
      flameRootPanel.getParent().validate();
View Full Code Here

TOP

Related Classes of org.jwildfire.image.SimpleImage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.