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

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

源代码1 项目: DiskBrowser   文件: FontFile.java
public FontFileCharacter (byte[] buffer, int ptr)
// -------------------------------------------------------------------------------//
{
  super (sizeX, sizeY);

  DataBuffer dataBuffer = image.getRaster ().getDataBuffer ();
  int element = 0;

  for (int i = 0; i < sizeY; i++)
  {
    int value = buffer[ptr++] & 0xFF;
    for (int j = 0; j < sizeX; j++)
    {
      dataBuffer.setElem (element++, (value & 0x01) == 0 ? 0 : 0xFF);
      value >>>= 1;
    }
  }
}
 
源代码2 项目: DiskBrowser   文件: ShapeTable.java
void convertGrid (int offsetRows, int offsetColumns, int rows, int columns)
{
  //      System.out.printf ("Converting shape # %d%n", index);
  //      System.out.printf ("offsetRows %d offsetCols %d%n", offsetRows,
  // offsetColumns);
  //      System.out.printf ("rows %d cols %d%n", rows, columns);

  displayGrid = new int[rows][columns];
  for (int row = 0; row < rows; row++)
    for (int col = 0; col < columns; col++)
      displayGrid[row][col] = grid[offsetRows + row][offsetColumns + col];
  grid = null;

  // draw the image
  image = new BufferedImage (columns, rows, BufferedImage.TYPE_BYTE_GRAY);
  DataBuffer dataBuffer = image.getRaster ().getDataBuffer ();
  int element = 0;
  for (int row = 0; row < rows; row++)
    for (int col = 0; col < columns; col++)
      dataBuffer.setElem (element++, displayGrid[row][col] == 0 ? 0 : 255);

  startRow -= offsetRows;
  startCol -= offsetColumns;
  //      endRow -= offsetRows;
  //      endCol -= offsetColumns;
}
 
源代码3 项目: DiskBrowser   文件: CharacterRom.java
public CharacterRomCharacter (byte[] buffer, int ptr)
// -------------------------------------------------------------------------------//
{
  super (sizeX, sizeY);

  DataBuffer dataBuffer = image.getRaster ().getDataBuffer ();
  int element = 0;

  for (int i = 0; i < sizeY; i++)
  {
    int value = buffer[ptr++] & 0xFF;
    for (int j = 0; j < sizeX; j++)
    {
      dataBuffer.setElem (element++, (value & 0x80) == 0 ? 0 : 0xFF);
      value <<= 1;
    }
  }
}
 
源代码4 项目: DiskBrowser   文件: ImageV2.java
ImageV2 (String name, byte[] buffer)
// ---------------------------------------------------------------------------------//
{
  super (name, buffer);

  image = new BufferedImage (70, 48, BufferedImage.TYPE_BYTE_GRAY); // width/height
  DataBuffer db = image.getRaster ().getDataBuffer ();
  int offset = 0;
  int size = 7;

  for (int i = 0; i < 6; i++)
    for (int j = 0; j < 10; j++)
      for (int k = 7; k >= 0; k--)
      {
        int element = i * 560 + j * 7 + k * 70;
        int bits = buffer[offset++] & 0xFF;
        for (int m = size - 1; m >= 0; m--)
        {
          if ((bits & 1) == 1)
            db.setElem (element, 255);
          bits >>= 1;
          element++;
        }
      }
}
 
源代码5 项目: DiskBrowser   文件: Wiz4Image.java
public Wiz4Image (String name, byte[] buffer, int rows, int cols)   // 5, 6
// ---------------------------------------------------------------------------------//
{
  super (name, buffer);

  image = new BufferedImage (cols * 7, rows * 8, BufferedImage.TYPE_BYTE_GRAY);
  DataBuffer db = image.getRaster ().getDataBuffer ();
  int element = 0;

  int rowSize = cols * 8;
  for (int row = 0; row < rows; row++)
    for (int line = 0; line < 8; line++)
      for (int col = 0; col < cols; col++)
      {
        byte b = buffer[row * rowSize + col * 8 + line];
        for (int bit = 0; bit < 7; bit++)
        {
          if ((b & 0x01) == 0x01)
            db.setElem (element, 255);
          b >>>= 1;
          element++;
        }
      }
}
 
源代码6 项目: DiskBrowser   文件: SHRPictureFile1.java
@Override
void createMonochromeImage ()
// ---------------------------------------------------------------------------------//
{
  image = new BufferedImage (320, 200, BufferedImage.TYPE_BYTE_GRAY);
  DataBuffer db = image.getRaster ().getDataBuffer ();

  int element = 0;
  int ptr = 0;
  for (int row = 0; row < 200; row++)
    for (int col = 0; col < 160; col++)
    {
      int pix1 = (buffer[ptr] & 0xF0) >> 4;
      int pix2 = buffer[ptr] & 0x0F;
      if (pix1 > 0)
        db.setElem (element, 255);
      if (pix2 > 0)
        db.setElem (element + 1, 255);
      element += 2;
      ptr++;
    }
}
 
源代码7 项目: commons-imaging   文件: DataParser.java
public final void parseData(final int[][][] data, final BufferedImage bi,
        final PsdImageContents imageContents) {
    final DataBuffer buffer = bi.getRaster().getDataBuffer();

    final PsdHeaderInfo header = imageContents.header;
    final int width = header.columns;
    final int height = header.rows;

    for (int y = 0; y < height; y++) {
        for (int x = 0; x < width; x++) {
            final int rgb = getRGB(data, x, y, imageContents);
            buffer.setElem(y * width + x, rgb);
        }
    }
}
 
源代码8 项目: pdfcompare   文件: DiffImage.java
private static void mark(final DataBuffer image, final int x, final int y, final int imageWidth, final int markerRGB) {
    final int yOffset = y * imageWidth;
    for (int i = 0; i < MARKER_WIDTH; i++) {
        image.setElem(x + i * imageWidth, markerRGB);
        image.setElem(i + yOffset, markerRGB);
    }
}
 
源代码9 项目: DiskBrowser   文件: QuickDrawFont.java
public QuickDrawCharacter (int strikeOffset, int strikeWidth)
// -------------------------------------------------------------------------------//
{
  super (strikeWidth, fRectHeight);

  DataBuffer dataBuffer = image.getRaster ().getDataBuffer ();

  int element = 0;
  for (int row = 0; row < fRectHeight; row++)
    for (int j = strikeOffset; j < strikeOffset + strikeWidth; j++)
      dataBuffer.setElem (element++, strike[row].get (j) ? 255 : 0);
}
 
源代码10 项目: DiskBrowser   文件: HiResImage.java
int draw (DataBuffer dataBuffer, int element, int... rgbList)
// ---------------------------------------------------------------------------------//
{
  if (dataBuffer.getSize () < rgbList.length + element)
  {
    System.out.printf ("Bollocks: %d %d %d%n", dataBuffer.getSize (), rgbList.length,
        element);
    return element;
  }

  for (int rgb : rgbList)
    dataBuffer.setElem (element++, rgb);

  return element;
}
 
源代码11 项目: dragonwell8_jdk   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.setElem(numReps&7, 0);
    } while (--numReps > 0);
}
 
源代码12 项目: TencentKona-8   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.setElem(numReps&7, 0);
    } while (--numReps > 0);
}
 
源代码13 项目: jdk8u60   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.setElem(numReps&7, 0);
    } while (--numReps > 0);
}
 
源代码14 项目: libreveris   文件: TestImage3.java
public static PlanarImage decodeImage (String[] rows)
    {
        // Create the DataBuffer to hold the pixel samples
        final int width = rows[0].length();
        final int height = rows.length;

        // Create Raster
        Raster raster;
        if (true) {
            raster = Raster.createPackedRaster
            (DataBuffer.TYPE_INT, width, height,
             new int[] {0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000},// bandMasks RGBA
             null);
        } else {
            raster = Raster.createInterleavedRaster
                (DataBuffer.TYPE_BYTE, width, height,
                 4,// num of bands
                 null);
        }

        // Populate the data buffer
        DataBuffer dataBuffer = raster.getDataBuffer();
        int index = 0;
        for (String row : rows) {
            for (int x = 0; x < width; x++) {
                int argb = toARGB(row.charAt(x));
                dataBuffer.setElem(index, argb);
                index++;
            }
        }

        // Dump
//         final int size = width * height;
//         System.out.println("DataBuffer :");
//         for (int i = 0; i < size; i++) {
//             if (i % width == 0) {
//                 System.out.println();
//             }
//             System.out.print(String.format("%8x ", dataBuffer.getElem(i)));
//         }
//         System.out.println();

        // Create the image
        BufferedImage bufferedImage = new BufferedImage
                (width, height, BufferedImage.TYPE_INT_ARGB);
        bufferedImage.setData(raster);

        // Dump
//         System.out.println("BufferedImage :");
//         for (int y = 0; y < height; y++) {
//             System.out.println();
//             for (int x = 0; x < width; x++) {
//                 System.out.print(String.format("%8x ", bufferedImage.getRGB(x, y)));
//             }
//         }
//         System.out.println();

        return PlanarImage.wrapRenderedImage(bufferedImage);
    }
 
源代码15 项目: jdk8u-dev-jdk   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.setElem(numReps&7, 0);
    } while (--numReps > 0);
}
 
源代码16 项目: openjdk-jdk9   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.setElem(numReps&7, 0);
    } while (--numReps > 0);
}
 
源代码17 项目: jdk8u-jdk   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.setElem(numReps&7, 0);
    } while (--numReps > 0);
}
 
源代码18 项目: pdfcompare   文件: DiffImage.java
public void diffImages() {
    BufferedImage expectBuffImage = this.expectedImage.bufferedImage;
    BufferedImage actualBuffImage = this.actualImage.bufferedImage;
    expectedBuffer = expectBuffImage.getRaster().getDataBuffer();
    actualBuffer = actualBuffImage.getRaster().getDataBuffer();

    expectedImageWidth = expectBuffImage.getWidth();
    expectedImageHeight = expectBuffImage.getHeight();
    actualImageWidth = actualBuffImage.getWidth();
    actualImageHeight = actualBuffImage.getHeight();

    resultImageWidth = Math.max(expectedImageWidth, actualImageWidth);
    resultImageHeight = Math.max(expectedImageHeight, actualImageHeight);
    resultImage = new BufferedImage(resultImageWidth, resultImageHeight, actualBuffImage.getType());
    DataBuffer resultBuffer = resultImage.getRaster().getDataBuffer();

    diffCalculator = new PageDiffCalculator(resultImageWidth * resultImageHeight, environment.getAllowedDiffInPercent());

    int expectedElement;
    int actualElement;
    final PageExclusions pageExclusions = exclusions.forPage(page + 1);

    for (int y = 0; y < resultImageHeight; y++) {
        final int expectedLineOffset = y * expectedImageWidth;
        final int actualLineOffset = y * actualImageWidth;
        final int resultLineOffset = y * resultImageWidth;
        for (int x = 0; x < resultImageWidth; x++) {
            expectedElement = getExpectedElement(x, y, expectedLineOffset);
            actualElement = getActualElement(x, y, actualLineOffset);
            int element = getElement(expectedElement, actualElement);
            if (pageExclusions.contains(x, y)) {
                element = ImageTools.fadeExclusion(element);
                if (expectedElement != actualElement) {
                    diffCalculator.diffFoundInExclusion();
                }
            } else {
                if (expectedElement != actualElement) {
                    extendDiffArea(x, y);
                    diffCalculator.diffFound();
                    LOG.trace("Difference found on page: {} at x: {}, y: {}", page + 1, x, y);
                    mark(resultBuffer, x, y, resultImageWidth, MARKER_RGB);
                }
            }
            resultBuffer.setElem(x + resultLineOffset, element);
        }
    }
    if (diffCalculator.differencesFound()) {
        diffCalculator.addDiffArea(new PageArea(page + 1, diffAreaX1, diffAreaY1, diffAreaX2, diffAreaY2));
        LOG.info("Differences found at { page: {}, x1: {}, y1: {}, x2: {}, y2: {} }", page + 1, diffAreaX1, diffAreaY1, diffAreaX2,
                diffAreaY2);
    }
    final float maxWidth = Math.max(expectedImage.width, actualImage.width);
    final float maxHeight = Math.max(expectedImage.height, actualImage.height);
    compareResult.addPage(diffCalculator, page, expectedImage, actualImage, new ImageWithDimension(resultImage, maxWidth, maxHeight));
}
 
源代码19 项目: openjdk-8   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.setElem(numReps&7, 0);
    } while (--numReps > 0);
}
 
源代码20 项目: jdk8u_jdk   文件: PixelTests.java
public void runTest(Object context, int numReps) {
    DataBuffer db = ((Context) context).db;
    do {
        db.setElem(numReps&7, 0);
    } while (--numReps > 0);
}