當前位置: 首頁>>代碼示例>>Java>>正文


Java Raster.createChild方法代碼示例

本文整理匯總了Java中java.awt.image.Raster.createChild方法的典型用法代碼示例。如果您正苦於以下問題:Java Raster.createChild方法的具體用法?Java Raster.createChild怎麽用?Java Raster.createChild使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在java.awt.image.Raster的用法示例。


在下文中一共展示了Raster.createChild方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: Blit

import java.awt.image.Raster; //導入方法依賴的package包/類
public void Blit(SurfaceData srcData,
                 SurfaceData dstData,
                 Composite comp,
                 Region clip,
                 int srcx, int srcy,
                 int dstx, int dsty,
                 int width, int height)
{
    ColorModel srcCM = srcData.getColorModel();
    ColorModel dstCM = dstData.getColorModel();
    // REMIND: Should get RenderingHints from sg2d
    CompositeContext ctx = comp.createContext(srcCM, dstCM,
                                              new RenderingHints(null));
    Raster srcRas = srcData.getRaster(srcx, srcy, width, height);
    WritableRaster dstRas =
        (WritableRaster) dstData.getRaster(dstx, dsty, width, height);

    if (clip == null) {
        clip = Region.getInstanceXYWH(dstx, dsty, width, height);
    }
    int span[] = {dstx, dsty, dstx+width, dsty+height};
    SpanIterator si = clip.getSpanIterator(span);
    srcx -= dstx;
    srcy -= dsty;
    while (si.nextSpan(span)) {
        int w = span[2] - span[0];
        int h = span[3] - span[1];
        Raster tmpSrcRas = srcRas.createChild(srcx + span[0], srcy + span[1],
                                              w, h, 0, 0, null);
        WritableRaster tmpDstRas = dstRas.createWritableChild(span[0], span[1],
                                                              w, h, 0, 0, null);
        ctx.compose(tmpSrcRas, tmpDstRas, tmpDstRas);
    }
    ctx.dispose();
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:36,代碼來源:Blit.java

示例2: writeIDAT

import java.awt.image.Raster; //導入方法依賴的package包/類
private void writeIDAT() throws IOException
{
	IDATOutputStream ios = new IDATOutputStream(dataOutput, 8192);
	DeflaterOutputStream dos = new DeflaterOutputStream(ios,
			new Deflater(9));

	// Future work - don't convert entire image to a Raster It
	// might seem that you could just call image.getData() but
	// 'BufferedImage.subImage' doesn't appear to set the Width
	// and height properly of the Child Raster, so the Raster
	// you get back here appears larger than it should.
	// This solves that problem by bounding the raster to the
	// image's bounds...
	Raster ras = image.getData(new Rectangle(image.getMinX(), image
			.getMinY(), image.getWidth(), image.getHeight()));
	// System.out.println("Image: [" +
	//                    image.getMinY()  + ", " +
	//                    image.getMinX()  + ", " +
	//                    image.getWidth()  + ", " +
	//                    image.getHeight() + "]");
	// System.out.println("Ras: [" +
	//                    ras.getMinX()  + ", " +
	//                    ras.getMinY()  + ", " +
	//                    ras.getWidth()  + ", " +
	//                    ras.getHeight() + "]");

	if (skipAlpha)
	{
		int numBands = ras.getNumBands() - 1;
		int[] bandList = new int[numBands];
		for (int i = 0; i < numBands; i++)
		{
			bandList[i] = i;
		}
		ras = ras.createChild(0, 0, ras.getWidth(), ras.getHeight(), 0, 0,
				bandList);
	}

	if (interlace)
	{
		// Interlacing pass 1
		encodePass(dos, ras, 0, 0, 8, 8);
		// Interlacing pass 2
		encodePass(dos, ras, 4, 0, 8, 8);
		// Interlacing pass 3
		encodePass(dos, ras, 0, 4, 4, 8);
		// Interlacing pass 4
		encodePass(dos, ras, 2, 0, 4, 4);
		// Interlacing pass 5
		encodePass(dos, ras, 0, 2, 2, 4);
		// Interlacing pass 6
		encodePass(dos, ras, 1, 0, 2, 2);
		// Interlacing pass 7
		encodePass(dos, ras, 0, 1, 1, 2);
	}
	else
	{
		encodePass(dos, ras, 0, 0, 1, 1);
	}

	dos.finish();
	ios.flush();
}
 
開發者ID:GDSRS,項目名稱:TrabalhoFinalEDA2,代碼行數:64,代碼來源:mxPngImageEncoder.java

示例3: copyData

import java.awt.image.Raster; //導入方法依賴的package包/類
/**
 * Copies an arbitrary rectangular region of the RenderedImage
 * into a caller-supplied WritableRaster.  The region to be
 * computed is determined by clipping the bounds of the supplied
 * WritableRaster against the bounds of the image.  The supplied
 * WritableRaster must have a SampleModel that is compatible with
 * that of the image.
 *
 * <p> If the raster argument is null, the entire image will
 * be copied into a newly-created WritableRaster with a SampleModel
 * that is compatible with that of the image.
 *
 * @param dest a WritableRaster to hold the returned portion of
 *        the image.
 * @return a reference to the supplied WritableRaster, or to a
 *         new WritableRaster if the supplied one was null.
 */
public WritableRaster copyData(WritableRaster dest) {
    // Get the image bounds.
    Rectangle imageBounds = getBounds();

    Rectangle bounds;
    if (dest == null) {
        // Create a WritableRaster for the entire image.
        bounds = imageBounds;
        Point p = new Point(minX, minY);
        SampleModel sm =
            sampleModel.createCompatibleSampleModel(width, height);
        dest = Raster.createWritableRaster(sm, p);
    } else {
        bounds = dest.getBounds();
    }

    // Determine tile limits for the intersection of the prescribed
    // bounds with the image bounds.
    Rectangle xsect = imageBounds.contains(bounds) ?
        bounds : bounds.intersection(imageBounds);
    int startX = XToTileX(xsect.x);
    int startY = YToTileY(xsect.y);
    int endX = XToTileX(xsect.x + xsect.width - 1);
    int endY = YToTileY(xsect.y + xsect.height - 1);

    // Loop over the tiles in the intersection.
    for (int j = startY; j <= endY; j++) {
        for (int i = startX; i <= endX; i++) {
            // Retrieve the tile.
            Raster tile = getTile(i, j);

            // Create a child of the tile for the intersection of
            // the tile bounds and the bounds of the requested area.
            Rectangle tileRect = tile.getBounds();
            Rectangle intersectRect =
                bounds.intersection(tile.getBounds());
            Raster liveRaster = tile.createChild(intersectRect.x,
                                                 intersectRect.y,
                                                 intersectRect.width,
                                                 intersectRect.height,
                                                 intersectRect.x,
                                                 intersectRect.y,
                                                 null);

            // Copy the data from the child.
            dest.setRect(liveRaster);
        }
    }

    return dest;
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:69,代碼來源:SimpleRenderedImage.java


注:本文中的java.awt.image.Raster.createChild方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。