本文整理匯總了Java中java.awt.image.ImageConsumer類的典型用法代碼示例。如果您正苦於以下問題:Java ImageConsumer類的具體用法?Java ImageConsumer怎麽用?Java ImageConsumer使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
ImageConsumer類屬於java.awt.image包,在下文中一共展示了ImageConsumer類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: addConsumer
import java.awt.image.ImageConsumer; //導入依賴的package包/類
/**
* Adds an ImageConsumer to the list of consumers interested in
* data for this image.
* @param ic the specified <code>ImageConsumer</code>
* @throws NullPointerException if the specified
* <code>ImageConsumer</code> is null
* @see ImageConsumer
*/
public synchronized void addConsumer(ImageConsumer ic) {
if (theConsumers.contains(ic)) {
return;
}
theConsumers.addElement(ic);
try {
initConsumer(ic);
sendPixels(ic, 0, 0, width, height);
if (isConsumer(ic)) {
ic.imageComplete(animating
? ImageConsumer.SINGLEFRAMEDONE
: ImageConsumer.STATICIMAGEDONE);
if (!animating && isConsumer(ic)) {
ic.imageComplete(ImageConsumer.IMAGEERROR);
removeConsumer(ic);
}
}
} catch (Exception e) {
if (isConsumer(ic)) {
ic.imageComplete(ImageConsumer.IMAGEERROR);
}
}
}
示例2: setFullBufferUpdates
import java.awt.image.ImageConsumer; //導入依賴的package包/類
/**
* Specifies whether this animated memory image should always be
* updated by sending the complete buffer of pixels whenever
* there is a change.
* This flag is ignored if the animation flag is not turned on
* through the setAnimated() method.
* <p>This method should be called immediately after the
* MemoryImageSource is constructed and before an image is
* created with it to ensure that all ImageConsumers will
* receive the correct pixel delivery hints.
* @param fullbuffers <code>true</code> if the complete pixel
* buffer should always
* be sent
* @see #setAnimated
*/
public synchronized void setFullBufferUpdates(boolean fullbuffers) {
if (this.fullbuffers == fullbuffers) {
return;
}
this.fullbuffers = fullbuffers;
if (animating) {
Enumeration enum_ = theConsumers.elements();
while (enum_.hasMoreElements()) {
ImageConsumer ic = (ImageConsumer) enum_.nextElement();
ic.setHints(fullbuffers
? (ImageConsumer.TOPDOWNLEFTRIGHT |
ImageConsumer.COMPLETESCANLINES)
: ImageConsumer.RANDOMPIXELORDER);
}
}
}
示例3: initConsumer
import java.awt.image.ImageConsumer; //導入依賴的package包/類
private void initConsumer(ImageConsumer ic) {
if (isConsumer(ic)) {
ic.setDimensions(width, height);
}
if (isConsumer(ic)) {
ic.setProperties(properties);
}
if (isConsumer(ic)) {
ic.setColorModel(model);
}
if (isConsumer(ic)) {
ic.setHints(animating
? (fullbuffers
? (ImageConsumer.TOPDOWNLEFTRIGHT |
ImageConsumer.COMPLETESCANLINES)
: ImageConsumer.RANDOMPIXELORDER)
: (ImageConsumer.TOPDOWNLEFTRIGHT |
ImageConsumer.COMPLETESCANLINES |
ImageConsumer.SINGLEPASS |
ImageConsumer.SINGLEFRAME));
}
}
示例4: removeConsumer
import java.awt.image.ImageConsumer; //導入依賴的package包/類
static ImageConsumerQueue removeConsumer(ImageConsumerQueue cqbase,
ImageConsumer ic,
boolean stillinterested)
{
ImageConsumerQueue cqprev = null;
for (ImageConsumerQueue cq = cqbase; cq != null; cq = cq.next) {
if (cq.consumer == ic) {
if (cqprev == null) {
cqbase = cq.next;
} else {
cqprev.next = cq.next;
}
cq.interested = stillinterested;
break;
}
cqprev = cq;
}
return cqbase;
}
示例5: ImageConsumerQueue
import java.awt.image.ImageConsumer; //導入依賴的package包/類
ImageConsumerQueue(InputStreamImageSource src, ImageConsumer ic) {
consumer = ic;
interested = true;
// ImageReps do their own security at access time.
if (ic instanceof ImageRepresentation) {
ImageRepresentation ir = (ImageRepresentation) ic;
if (ir.image.source != src) {
throw new SecurityException("ImageRep added to wrong image source");
}
secure = true;
} else {
SecurityManager security = System.getSecurityManager();
if (security != null) {
securityContext = security.getSecurityContext();
} else {
securityContext = null;
}
}
}
示例6: setDimensions
import java.awt.image.ImageConsumer; //導入依賴的package包/類
public void setDimensions(int w, int h) {
if (src != null) {
src.checkSecurity(null, false);
}
image.setDimensions(w, h);
newInfo(image, (ImageObserver.WIDTH | ImageObserver.HEIGHT),
0, 0, w, h);
if (w <= 0 || h <= 0) {
imageComplete(ImageConsumer.IMAGEERROR);
return;
}
if (width != w || height != h) {
// dimension mismatch => trigger recreation of the buffer
bimage = null;
}
width = w;
height = h;
availinfo |= ImageObserver.WIDTH | ImageObserver.HEIGHT;
}
示例7: setDimensions
import java.awt.image.ImageConsumer; //導入依賴的package包/類
@Override
public void setDimensions(int w, int h){
if (src != null) {
src.checkSecurity(null, false);
}
image.setDimensions(w, h);
// bitmap = new cli.System.Drawing.Bitmap(w, h);
newInfo(image, (ImageObserver.WIDTH | ImageObserver.HEIGHT),
0, 0, w, h);
if (w <= 0 || h <= 0) {
imageComplete(ImageConsumer.IMAGEERROR);
return;
}
width = w;
height = h;
availinfo |= ImageObserver.WIDTH | ImageObserver.HEIGHT;
}
示例8: addConsumer
import java.awt.image.ImageConsumer; //導入依賴的package包/類
/**
* Adds an ImageConsumer to the list of consumers interested in
* data for this image.
* @param ic the specified {@code ImageConsumer}
* @throws NullPointerException if the specified
* {@code ImageConsumer} is null
* @see ImageConsumer
*/
public synchronized void addConsumer(ImageConsumer ic) {
if (theConsumers.contains(ic)) {
return;
}
theConsumers.addElement(ic);
try {
initConsumer(ic);
sendPixels(ic, 0, 0, width, height);
if (isConsumer(ic)) {
ic.imageComplete(animating
? ImageConsumer.SINGLEFRAMEDONE
: ImageConsumer.STATICIMAGEDONE);
if (!animating && isConsumer(ic)) {
ic.imageComplete(ImageConsumer.IMAGEERROR);
removeConsumer(ic);
}
}
} catch (Exception e) {
if (isConsumer(ic)) {
ic.imageComplete(ImageConsumer.IMAGEERROR);
}
}
}
示例9: setFullBufferUpdates
import java.awt.image.ImageConsumer; //導入依賴的package包/類
/**
* Specifies whether this animated memory image should always be
* updated by sending the complete buffer of pixels whenever
* there is a change.
* This flag is ignored if the animation flag is not turned on
* through the setAnimated() method.
* <p>This method should be called immediately after the
* MemoryImageSource is constructed and before an image is
* created with it to ensure that all ImageConsumers will
* receive the correct pixel delivery hints.
* @param fullbuffers {@code true} if the complete pixel
* buffer should always
* be sent
* @see #setAnimated
*/
public synchronized void setFullBufferUpdates(boolean fullbuffers) {
if (this.fullbuffers == fullbuffers) {
return;
}
this.fullbuffers = fullbuffers;
if (animating) {
Enumeration<ImageConsumer> enum_ = theConsumers.elements();
while (enum_.hasMoreElements()) {
ImageConsumer ic = enum_.nextElement();
ic.setHints(fullbuffers
? (ImageConsumer.TOPDOWNLEFTRIGHT |
ImageConsumer.COMPLETESCANLINES)
: ImageConsumer.RANDOMPIXELORDER);
}
}
}
示例10: setAnimated
import java.awt.image.ImageConsumer; //導入依賴的package包/類
/**
* Changes this memory image into a multi-frame animation or a
* single-frame static image depending on the animated parameter.
* <p>This method should be called immediately after the
* MemoryImageSource is constructed and before an image is
* created with it to ensure that all ImageConsumers will
* receive the correct multi-frame data. If an ImageConsumer
* is added to this ImageProducer before this flag is set then
* that ImageConsumer will see only a snapshot of the pixel
* data that was available when it connected.
* @param animated <code>true</code> if the image is a
* multi-frame animation
*/
public synchronized void setAnimated(boolean animated) {
this.animating = animated;
if (!animating) {
Enumeration enum_ = theConsumers.elements();
while (enum_.hasMoreElements()) {
ImageConsumer ic = (ImageConsumer) enum_.nextElement();
ic.imageComplete(ImageConsumer.STATICIMAGEDONE);
if (isConsumer(ic)) {
ic.imageComplete(ImageConsumer.IMAGEERROR);
}
}
theConsumers.removeAllElements();
}
}
示例11: newPixels
import java.awt.image.ImageConsumer; //導入依賴的package包/類
/**
* Sends a rectangular region of the buffer of pixels to any
* ImageConsumers that are currently interested in the data for
* this image.
* If the framenotify parameter is true then the consumers are
* also notified that an animation frame is complete.
* This method only has effect if the animation flag has been
* turned on through the setAnimated() method.
* If the full buffer update flag was turned on with the
* setFullBufferUpdates() method then the rectangle parameters
* will be ignored and the entire buffer will always be sent.
* @param x the x coordinate of the upper left corner of the rectangle
* of pixels to be sent
* @param y the y coordinate of the upper left corner of the rectangle
* of pixels to be sent
* @param w the width of the rectangle of pixels to be sent
* @param h the height of the rectangle of pixels to be sent
* @param framenotify <code>true</code> if the consumers should be sent a
* {@link ImageConsumer#SINGLEFRAMEDONE SINGLEFRAMEDONE} notification
* @see ImageConsumer
* @see #setAnimated
* @see #setFullBufferUpdates
*/
public synchronized void newPixels(int x, int y, int w, int h,
boolean framenotify) {
if (animating) {
if (fullbuffers) {
x = y = 0;
w = width;
h = height;
} else {
if (x < 0) {
w += x;
x = 0;
}
if (x + w > width) {
w = width - x;
}
if (y < 0) {
h += y;
y = 0;
}
if (y + h > height) {
h = height - y;
}
}
if ((w <= 0 || h <= 0) && !framenotify) {
return;
}
Enumeration enum_ = theConsumers.elements();
while (enum_.hasMoreElements()) {
ImageConsumer ic = (ImageConsumer) enum_.nextElement();
if (w > 0 && h > 0) {
sendPixels(ic, x, y, w, h);
}
if (framenotify && isConsumer(ic)) {
ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE);
}
}
}
}
示例12: sendPixels
import java.awt.image.ImageConsumer; //導入依賴的package包/類
private void sendPixels(ImageConsumer ic, int x, int y, int w, int h) {
int off = pixeloffset + pixelscan * y + x;
if (isConsumer(ic)) {
if (pixels instanceof byte[]) {
ic.setPixels(x, y, w, h, model,
((byte[]) pixels), off, pixelscan);
} else {
ic.setPixels(x, y, w, h, model,
((int[]) pixels), off, pixelscan);
}
}
}
示例13: infoDone
import java.awt.image.ImageConsumer; //導入依賴的package包/類
synchronized void infoDone(int status) {
if (status == ImageConsumer.IMAGEERROR ||
((~availinfo) & (ImageObserver.WIDTH |
ImageObserver.HEIGHT)) != 0) {
addInfo(ImageObserver.ERROR);
} else if ((availinfo & ImageObserver.PROPERTIES) == 0) {
setProperties(null);
}
}
示例14: produce
import java.awt.image.ImageConsumer; //導入依賴的package包/類
private void produce() {
try {
theConsumer.setDimensions(image.getWidth(), image.getHeight());
theConsumer.setProperties(properties);
sendPixels();
theConsumer.imageComplete(ImageConsumer.SINGLEFRAMEDONE);
theConsumer.imageComplete(ImageConsumer.STATICIMAGEDONE);
} catch (NullPointerException e) {
if (theConsumer != null) {
theConsumer.imageComplete(ImageConsumer.IMAGEERROR);
}
}
}
示例15: isConsumer
import java.awt.image.ImageConsumer; //導入依賴的package包/類
static boolean isConsumer(ImageConsumerQueue cqbase, ImageConsumer ic) {
for (ImageConsumerQueue cq = cqbase; cq != null; cq = cq.next) {
if (cq.consumer == ic) {
return true;
}
}
return false;
}