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


Java ImageConsumer類代碼示例

本文整理匯總了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);
        }
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:32,代碼來源:MemoryImageSource.java

示例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);
        }
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:32,代碼來源:MemoryImageSource.java

示例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));
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:23,代碼來源:MemoryImageSource.java

示例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;
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:20,代碼來源:ImageConsumerQueue.java

示例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;
        }
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:20,代碼來源:ImageConsumerQueue.java

示例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;
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:26,代碼來源:ImageRepresentation.java

示例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;
    }
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:23,代碼來源:ImageRepresentation.java

示例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);
        }
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:32,代碼來源:MemoryImageSource.java

示例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);
        }
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:32,代碼來源:MemoryImageSource.java

示例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();
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:28,代碼來源:MemoryImageSource.java

示例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);
            }
        }
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:62,代碼來源:MemoryImageSource.java

示例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);
        }
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:13,代碼來源:MemoryImageSource.java

示例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);
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:10,代碼來源:ToolkitImage.java

示例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);
        }
    }
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:14,代碼來源:OffScreenImageSource.java

示例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;
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:9,代碼來源:ImageConsumerQueue.java


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