java.awt.image.DataBuffer#getElem()源码实例Demo

下面列出了java.awt.image.DataBuffer#getElem() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: audiveris   文件: SymbolSample.java
private static ByteProcessor createBuffer (BufferedImage img)
{
    DataBuffer dataBuffer = img.getData().getDataBuffer();
    ByteProcessor buf = new ByteProcessor(img.getWidth(), img.getHeight());

    for (int y = 0, h = img.getHeight(); y < h; y++) {
        for (int x = 0, w = img.getWidth(); x < w; x++) {
            int index = x + (y * w);
            int elem = dataBuffer.getElem(index);

            // ShapeSymbol instances use alpha channel as the pixel level
            // With 0 as totally transparent so background (255)
            // And with 255 as totally opaque so foreground (0)
            int val = 255 - (elem >>> 24);
            buf.set(x, y, val);
        }
    }

    // binarize
    buf.threshold(216);

    return buf;
}
 
源代码2 项目: java-swing-tips   文件: MainPanel.java
private static Image makeTestImage(DataBuffer dataBuffer, ColorModel colorModel, int w, int h, int transIdx) {
  // DataBufferByte dataBufferByte = null;
  // if (dataBuffer instanceof DataBufferByte) {
  //   dataBufferByte = (DataBufferByte) dataBuffer;
  // } else {
  //   System.out.println("No DataBufferByte");
  // }
  // byte data[] = dataBufferByte.getData();
  BufferedImage buf = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
  for (int y = 0; y < h; y++) {
    for (int x = 0; x < w; x++) {
      int arrayIndex = x + y * w;
      // int colorIndex = Byte.toUnsignedInt(data[arrayIndex]);
      int colorIndex = dataBuffer.getElem(arrayIndex);
      if (transIdx == colorIndex) {
        buf.setRGB(x, y, Color.RED.getRGB()); // 0xFF_FF_00_00);
      } else {
        buf.setRGB(x, y, colorModel.getRGB(colorIndex));
      }
    }
  }
  return buf;
}
 
源代码3 项目: netcdf-java   文件: Grib2DataReader.java
private float[] getData41(RandomAccessFile raf, Grib2Drs.Type0 gdrs) throws IOException {
  int nb = gdrs.numberOfBits;
  int D = gdrs.decimalScaleFactor;
  float DD = (float) java.lang.Math.pow((double) 10, (double) D);
  float R = gdrs.referenceValue;
  int E = gdrs.binaryScaleFactor;
  float EE = (float) java.lang.Math.pow(2.0, (double) E);

  // LOOK: can # datapoints differ from bitmap and data ?
  // dataPoints are number of points encoded, it could be less than the
  // totalNPoints in the grid record if bitMap is used, otherwise equal
  float[] data = new float[totalNPoints];

  // no data to decode, set to reference value
  if (nb == 0) {
    Arrays.fill(data, R);
    return data;
  }

  // Y * 10**D = R + (X1 + X2) * 2**E
  // E = binary scale factor
  // D = decimal scale factor
  // R = reference value
  // X1 = 0
  // X2 = scaled encoded value
  // data[ i ] = (R + ( X1 + X2) * EE)/DD ;

  byte[] buf = new byte[dataLength - 5];
  raf.readFully(buf);
  InputStream in = new ByteArrayInputStream(buf);
  BufferedImage image = ImageIO.read(in);

  if (nb != image.getColorModel().getPixelSize()) {
    logger.debug("PNG pixel size {} disagrees with grib number of bits {}", image.getColorModel().getPixelSize(), nb);
  }

  DataBuffer db = image.getRaster().getDataBuffer();
  if (bitmap == null) {
    for (int i = 0; i < dataNPoints; i++) {
      data[i] = (R + db.getElem(i) * EE) / DD;
    }
  } else {
    for (int bitPt = 0, dataPt = 0; bitPt < totalNPoints; bitPt++) {
      if (GribNumbers.testBitIsSet(bitmap[bitPt / 8], bitPt % 8)) {
        data[bitPt] = (R + db.getElem(dataPt++) * EE) / DD;
      } else {
        data[bitPt] = staticMissingValue;
      }
    }
  }

  return data;
}
 
源代码4 项目: dragonwell8_jdk   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码5 项目: TencentKona-8   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码6 项目: jdk8u60   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码7 项目: openjdk-jdk8u   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码8 项目: openjdk-jdk8u-backup   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码9 项目: openjdk-jdk9   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码10 项目: jdk8u-jdk   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码11 项目: hottub   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码12 项目: openjdk-8-source   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码13 项目: openjdk-8   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码14 项目: jdk8u_jdk   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码15 项目: RemoteSupportTool   文件: ImageUtils.java
public static boolean equals(BufferedImage image1, BufferedImage image2) {
    final int image1Width = image1.getWidth();
    final int image1Height = image1.getHeight();

    final int image2Width = image2.getWidth();
    final int image2Height = image2.getHeight();

    if (image1Width != image2Width || image1Height != image2Height)
        return false;

    final DataBuffer image1Buffer = image1.getData().getDataBuffer();
    final DataBuffer image2Buffer = image2.getData().getDataBuffer();

    final int image1BufferSize = image1Buffer.getSize();
    final int image2BufferSize = image2Buffer.getSize();
    if (image1BufferSize != image2BufferSize)
        return false;

    if (image1Buffer instanceof DataBufferInt && image2Buffer instanceof DataBufferInt) {
        // compare according to https://stackoverflow.com/a/11006984
        final DataBufferInt image1BufferInt = (DataBufferInt) image1Buffer;
        final DataBufferInt image2BufferInt = (DataBufferInt) image2Buffer;
        if (image1BufferInt.getNumBanks() != image2BufferInt.getNumBanks())
            return false;

        for (int bank = 0; bank < image1BufferInt.getNumBanks(); bank++) {
            int[] actual = image1BufferInt.getData(bank);
            int[] expected = image2BufferInt.getData(bank);
            if (!Arrays.equals(actual, expected))
                return false;
        }
    } else {
        // compare according to https://stackoverflow.com/a/51497360
        for (int i = 0; i < image1BufferSize; i++) {
            if (image1Buffer.getElem(i) != image2Buffer.getElem(i)) {
                return false;
            }
        }
    }

    //for (int x = 0; x < image1Width; x++) {
    //    for (int y = 0; y < image1Height; y++) {
    //        if (image1.getRGB(x, y) != image2.getRGB(x, y)) {
    //            return false;
    //        }
    //    }
    //}

    return true;
}
 
源代码16 项目: jdk8u-jdk   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}
 
源代码17 项目: jdk8u-dev-jdk   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.getElem(numReps&7);
    } while (--numReps > 0);
}