微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java.awt.AlphaComposite的实例源码

项目:openjdk-jdk10    文件DrawImage.java   
/**
 * Return a non-accelerated BufferedImage of the requested type with the
 * indicated subimage of the original image located at 0,0 in the new image.
 * If a bgColor is supplied,composite the original image over that color
 * with a SrcOver operation,otherwise make a SrcNoEa copy.
 * <p>
 * Returned BufferedImage is not accelerated for two reasons:
 * <ul>
 * <li> Types of the image and surface are p@R_404_4012@d,because these types
 *      correspond to the TransformHelpers,which we kNow we have. And
 *      acceleration can change the type of the surface
 * <li> Image will be used only once and acceleration caching wouldn't help
 * </ul>
 */
private BufferedImage makeBufferedImage(Image img,Color bgColor,int type,int sx1,int sy1,int sx2,int sy2)
{
    final int width = sx2 - sx1;
    final int height = sy2 - sy1;
    final BufferedImage bimg = new BufferedImage(width,height,type);
    final SunGraphics2D g2d = (SunGraphics2D) bimg.createGraphics();
    g2d.setComposite(AlphaComposite.Src);
    bimg.setaccelerationPriority(0);
    if (bgColor != null) {
        g2d.setColor(bgColor);
        g2d.fillRect(0,width,height);
        g2d.setComposite(AlphaComposite.SrcOver);
    }
    g2d.copyImage(img,sx1,sy1,null,null);
    g2d.dispose();
    return bimg;
}
项目:jdk8u-jdk    文件ImageTests.java   
public void modifyTest(TestEnvironment env) {
    int size = env.getIntValue(sizeList);
    Image src = tsit.getimage(env,size,size);
    Graphics g = src.getGraphics();
    if (hasGraphics2D) {
        ((Graphics2D) g).setComposite(AlphaComposite.Src);
    }
    if (size == 1) {
        g.setColor(colorsets[transparency][4]);
        g.fillRect(0,1,1);
    } else {
        int mid = size/2;
        g.setColor(colorsets[transparency][0]);
        g.fillRect(0,mid,mid);
        g.setColor(colorsets[transparency][1]);
        g.fillRect(mid,size-mid,mid);
        g.setColor(colorsets[transparency][2]);
        g.fillRect(0,size-mid);
        g.setColor(colorsets[transparency][3]);
        g.fillRect(mid,size-mid);
    }
    g.dispose();
    env.setSrcImage(src);
}
项目:incubator-netbeans    文件BalloonManager.java   
@Override
protected void paintComponent(Graphics g) {
    Graphics2D g2d = (Graphics2D)g;

    g2d.setRenderingHint( RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON );

    Composite oldC = g2d.getComposite();
    Shape s = getMask( getWidth(),getHeight() );

    g2d.setComposite( AlphaComposite.getInstance( AlphaComposite.SRC_OVER,0.25f*currentAlpha ) );
    g2d.setColor( Color.black );
    g2d.fill( getShadowMask(s) );

    g2d.setColor( UIManager.getColor( "ToolTip.background" ) ); //NOI18N
    g2d.setComposite( AlphaComposite.getInstance( AlphaComposite.SRC_OVER,currentAlpha ) );
    Point2D p1 = s.getBounds().getLocation();
    Point2D p2 = new Point2D.Double(p1.getX(),p1.getY()+s.getBounds().getHeight());
    if( isMouSEOverEffect )
        g2d.setPaint( new GradientPaint( p2,getMouSEOverGradientStartColor(),p1,getMouSEOverGradientFinishColor() ) );
    else
        g2d.setPaint( new GradientPaint( p2,getDefaultGradientStartColor(),getDefaultGradientFinishColor() ) );
    g2d.fill(s);
    g2d.setColor( Color.black );
    g2d.draw(s);
    g2d.setComposite( oldC );
}
项目:openjdk-jdk10    文件IncorrectClipSurface2SW.java   
private static void draw(Shape clip,Shape to,Image vi,BufferedImage bi,int scale) {
    Graphics2D big = bi.createGraphics();
    big.setComposite(AlphaComposite.Src);
    big.setClip(clip);
    Rectangle toBounds = to.getBounds();
    int x1 = toBounds.x;

    int y1 = toBounds.y;
    int x2 = x1 + toBounds.width;
    int y2 = y1 + toBounds.height;
    big.drawImage(vi,x1,y1,x2,y2,toBounds.width / scale,toBounds.height / scale,null);
    big.dispose();
    vi.flush();
}
项目:jdk8u-jdk    文件PeekMetrics.java   
/**
 * Record @R_204_4045@ion about drawing done
 * with the supplied <code>Composite</code>.
 */
private void checkAlpha(Composite composite) {

    if (composite instanceof AlphaComposite) {
        AlphaComposite alphaComposite = (AlphaComposite) composite;
        float alpha = alphaComposite.getAlpha();
        int rule = alphaComposite.getRule();

        if (alpha != 1.0
                || (rule != AlphaComposite.SRC
                    && rule != AlphaComposite.SRC_OVER)) {

            mHasCompositing = true;
        }

    } else {
        mHasCompositing = true;
    }

}
项目:jmt    文件Convex2DGraph.java   
/**
 * It draw a temporary point when a point is moved in another place
 * 
 * @param g
 *            The graphic object
 * @param p
 *            The position of the point
 * @param c
 *            The color of the point
 * @param size
 *            The size of the point
 */
public void drawShadowPoint(Graphics2D g,Point p,Color c,int size) {
    g.setColor(c);

    int fontSize = 7 + getPointSize();
    Font f = new Font("Arial",Font.PLAIN,fontSize);
    g.setFont(f);
    double x = Math.max(p.getX(),GRAPH_LEFT_MARGIN);
    double y = Math.min(p.getY(),getHeight() - GRAPH_BottOM_MARGIN);

    g.drawString("(" + FORMAT_3_DEC.format(getTrueX(x)) + ","
            + FORMAT_3_DEC.format(getTrueY(y)) + ")",(int) (x - (fontSize * 3)),(int) y - 5 - getPointSize());

    g.drawoval((int) x - (((size / 2))),(int) y - (((size / 2))),size);

    g.setColor(Color.GRAY);
    Composite oldComp = g.getComposite();
    Composite alphaComp = AlphaComposite.getInstance(
            AlphaComposite.SRC_OVER,0.3f);
    g.setComposite(alphaComp);
    g.filloval((int) x - (((size / 2))),size);
    g.setComposite(oldComp);
}
项目:jmt    文件PainterConvex2D.java   
/**
 * Draw a semi-trasparet area
 * @param g The graphic object
 * @param dragPoint The first point
 * @param beginPoint The second point
 * @param c The color of the area
 */
public void drawDragArea(Graphics2D g,Point dragPoint,Point beginPoint,Color c) {
    g.setColor(c);

    polygon poly = new polygon();

    poly.addPoint((int) beginPoint.getX(),(int) beginPoint.getY());
    poly.addPoint((int) beginPoint.getX(),(int) dragPoint.getY());
    poly.addPoint((int) dragPoint.getX(),(int) beginPoint.getY());

    //Set the widths of the shape's outline
    stroke oldStro = g.getstroke();
    stroke stroke = new Basicstroke(2.0f,Basicstroke.CAP_ROUND,Basicstroke.JOIN_ROUND);
    g.setstroke(stroke);
    g.drawpolygon(poly);
    g.setstroke(oldStro);

    //Set the trasparency of the iside of the rectangle
    Composite oldComp = g.getComposite();
    Composite alphaComp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.4f);
    g.setComposite(alphaComp);
    g.fillpolygon(poly);
    g.setComposite(oldComp);

}
项目:BasicsProject    文件GifCaptcha.java   
/**
 * 画随机码图
 * @param fontcolor 随机字体颜色
 * @param strs 字符数组
 * @param flag 透明度使用
 * @return BufferedImage
 */
private BufferedImage graphicsImage(Color[] fontcolor,char[] strs,int flag)
{
    BufferedImage image = new BufferedImage(width,BufferedImage.TYPE_INT_RGB);
    //或得图形上下文
    //Graphics2D g2d=image.createGraphics();
    Graphics2D g2d = (Graphics2D)image.getGraphics();
    //利用指定颜色填充背景
    g2d.setColor(Color.WHITE);
    g2d.fillRect(0,height);
    AlphaComposite ac3;
    int h  = height - ((height - font.getSize()) >>1) ;
    int w = width/len;
    g2d.setFont(font);
    for(int i=0;i<len;i++)
    {
        ac3 = AlphaComposite.getInstance(AlphaComposite.SRC_OVER,getAlpha(flag,i));
        g2d.setComposite(ac3);
        g2d.setColor(fontcolor[i]);
        g2d.drawoval(num(width),num(height),5+num(10),5+num(10));
        g2d.drawString(strs[i]+"",(width-(len-i)*w)+(w-font.getSize())+1,h-4);
    }
    g2d.dispose();
    return image;
}
项目:smile_1.5.0_java7    文件Graphics.java   
/**
 * Fill polygon. The coordinates are in logical coordinates. This also supports
 * basic alpha compositing rules for combining source and destination
 * colors to achieve blending and transparency effects with graphics and images.
 *
 * @param alpha the constant alpha to be multiplied with the alpha of the
 *     source. alpha must be a floating point number in the inclusive range
 *     [0.0,1.0].
 */
public void fillpolygon(float alpha,double[]... coord) {
    int[][] c = new int[coord.length][2];
    for (int i = 0; i < coord.length; i++) {
        c[i] = projection.screenProjection(coord[i]);
    }

    int[] x = new int[c.length];
    for (int i = 0; i < c.length; i++) {
        x[i] = c[i][0];
    }
    int[] y = new int[c.length];
    for (int i = 0; i < c.length; i++) {
        y[i] = c[i][1];
    }

    Composite cs = g2d.getComposite();
    g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,alpha));

    g2d.fillpolygon(x,y,c.length);

    g2d.setComposite(cs);
}
项目:sbc-qsystem    文件FInfoDialog.java   
private Image resizetoBig(Image originalImage,int biggerWidth,int biggerHeight) {
    final BufferedImage resizedImage = new BufferedImage(biggerWidth,biggerHeight,BufferedImage.TYPE_INT_ARGB);
    final Graphics2D g = resizedImage.createGraphics();

    g.setComposite(AlphaComposite.Src);
    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);

    g.drawImage(originalImage,biggerWidth,this);
    g.dispose();

    return resizedImage;
}
项目:Openjsharp    文件SunGraphics2D.java   
final void validateColor() {
    int eargb;
    if (imageComp == CompositeType.Clear) {
        eargb = 0;
    } else {
        eargb = foregroundColor.getRGB();
        if (compositeState <= COMP_ALPHA &&
            imageComp != CompositeType.SrcNoEa &&
            imageComp != CompositeType.SrcOverNoEa)
        {
            AlphaComposite alphacomp = (AlphaComposite) composite;
            int a = Math.round(alphacomp.getAlpha() * (eargb >>> 24));
            eargb = (eargb & 0x00ffffff) | (a << 24);
        }
    }
    this.eargb = eargb;
    this.pixel = surfaceData.pixelFor(eargb);
}
项目:VASSAL-src    文件SymbolSet.java   
/**
 * Get image corresponding to this symbol. Generates the image and applies
 * optional mask if not already done so.
 * @param rect2 width and height are taken from this for otherwise invalid masks
 */
private BufferedImage getimage(Rectangle rect2) {
  if (img == null) {
    if ( isMask && (rect.width <= 0 || rect.height <= 0
        || rect.width+rect.x > bitmap.getWidth()
        || rect.height+rect.y > bitmap.getHeight() )) {
      // Images with invalid masks appear to be completely transparent.
      // This is a hassle generating new ones all the time,but there's nothing
      // to say that the real mask can't be different sizes at every call,// and anything else seems like overkill -- so this is an ugly kludge.
      // Hopefully,this crime against nature doesn't happen very often.
      return new BufferedImage(rect2.width,rect2.height,BufferedImage.TYPE_INT_ARGB);
    }
    img = bitmap.getSubimage(rect.x,rect.y,rect.width,rect.height);
    if (getMask() != null) {
      final BufferedImage bi = new BufferedImage(rect.width,rect.height,BufferedImage.TYPE_INT_ARGB);
      final Graphics2D g = bi.createGraphics();
      g.drawImage(img,0);
      g.setComposite(AlphaComposite.DstAtop);
      g.drawImage(getMask().getimage(rect),0);
      img = bi;
    }
  }
  return img;
}
项目:openjdk-jdk10    文件UnmanagedDrawImagePerformance.java   
private static long test(Image bi,AffineTransform atfm) {
    final polygon p = new polygon();
    p.addPoint(0,0);
    p.addPoint(SIZE,0);
    p.addPoint(0,SIZE);
    p.addPoint(SIZE,SIZE);
    p.addPoint(0,0);
    Graphics2D g2d = (Graphics2D) vi.getGraphics();
    g2d.clip(p);
    g2d.transform(atfm);
    g2d.setComposite(AlphaComposite.SrcOver);
    final long start = System.nanoTime();
    g2d.drawImage(bi,null);
    final long time = System.nanoTime() - start;
    g2d.dispose();
    return time;
}
项目:TrabalhoFinalEDA2    文件mxUtils.java   
/**
 * Clears the given area of the specified graphics object with the given
 * color or makes the region transparent.
 */
public static void clearRect(Graphics2D g,Rectangle rect,Color background)
{
    if (background != null)
    {
        g.setColor(background);
        g.fillRect(rect.x,rect.height);
    }
    else
    {
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR,0.0f));
        g.fillRect(rect.x,rect.height);
        g.setComposite(AlphaComposite.SrcOver);
    }
}
项目:VASSAL-src    文件WizardSupport.java   
public void setBackgroundImage(Image image) {
  if (image != null) {
    final ImageIcon icon = new ImageIcon(image);
    logoSize = new Dimension(icon.getIconWidth(),icon.getIconHeight());
    final BufferedImage img =
      ImageUtils.createCompatibleTranslucentimage(logoSize.width,logoSize.height);
    Graphics2D g = img.createGraphics();
    g.setColor(Color.white);
    g.fillRect(0,icon.getIconWidth(),icon.getIconHeight());
    g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.5F));
    icon.paintIcon(null,g,0);
    g.dispose();
    UIManager.put("wizard.sidebar.image",img); //$NON-NLS-1$
  }
}
项目:brModelo    文件Tabela.java   
private void FillCampos(Graphics2D g,Rectangle r,boolean normal) {
    Composite originalComposite = g.getComposite();
    float alfa = 1f - getAlfa();
    g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,alfa));
    Paint bkpp = g.getPaint();
    g.setColor(getMaster().getBackground()); //# Não: isdisablePainted()? disabledColor : 
    if (!normal) {
        if (isGradiente()) {
            g.setColor(getGradienteStartColor());
        } else {
            g.setColor(getForeColor());
        }
    }
    g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,getAlfa()));
    g.fill(r);

    g.setPaint(bkpp);
    g.setComposite(originalComposite);
}
项目:StreamDeckCore    文件IconHelper.java   
public static BufferedImage createResizedcopy(BufferedImage originalImage) {
    int scaledWidth = StreamDeck.ICON_SIZE;
    int scaledHeight = StreamDeck.ICON_SIZE;
    if (originalImage.getWidth() != originalImage.getHeight()) {
        float scalerWidth = ((float) StreamDeck.ICON_SIZE) / originalImage.getWidth();
        float scalerHeight = ((float) StreamDeck.ICON_SIZE) / originalImage.getWidth();
        if (scalerWidth < scaledHeight)
            scaledHeight = Math.round(scalerWidth * originalImage.getHeight());
        else
            scaledWidth = Math.round(scalerHeight * originalImage.getWidth());

    }
    int imageType = BufferedImage.TYPE_INT_ARGB;
    BufferedImage scaledBI = new BufferedImage(StreamDeck.ICON_SIZE,StreamDeck.ICON_SIZE,imageType);
    Graphics2D g = scaledBI.createGraphics();
    if (true) {
        g.setComposite(AlphaComposite.Src);
    }
    g.drawImage(originalImage,(StreamDeck.ICON_SIZE - scaledWidth) / 2,(StreamDeck.ICON_SIZE - scaledHeight) / 2,scaledWidth,scaledHeight,null);
    g.dispose();
    return scaledBI;
}
项目:parabuild-ci    文件Plot.java   
/**
 * Draws the background image (if there is one) aligned within the 
 * specified area.
 * 
 * @param g2  the graphics device.
 * @param area  the area.
 * 
 * @see #getBackgroundImage()
 * @see #getBackgroundImageAlignment()
 * @see #getBackgroundImageAlpha()
 */
protected void drawBackgroundImage(Graphics2D g2,Rectangle2D area) {
    if (this.backgroundImage != null) {
        Composite originalComposite = g2.getComposite();
        g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,this.backgroundImageAlpha));
        Rectangle2D dest = new Rectangle2D.Double(0.0,0.0,this.backgroundImage.getWidth(null),this.backgroundImage.getHeight(null));
        Align.align(dest,area,this.backgroundImageAlignment);
        g2.drawImage(this.backgroundImage,(int) dest.getX(),(int) dest.getY(),(int) dest.getWidth() + 1,(int) dest.getHeight() + 1,null);
        g2.setComposite(originalComposite);
    }
}
项目:QN-ACTR-Release    文件PainterConvex2D.java   
/**
 * Draw a semi-trasparet area
 * @param g The graphic object
 * @param dragPoint The first point
 * @param beginPoint The second point
 * @param c The color of the area
 */
public void drawDragArea(Graphics2D g,0.4f);
    g.setComposite(alphaComp);
    g.fillpolygon(poly);
    g.setComposite(oldComp);

}
项目:openjdk-jdk10    文件SunGraphics2D.java   
void validateColor() {
    int eargb;
    if (imageComp == CompositeType.Clear) {
        eargb = 0;
    } else {
        eargb = foregroundColor.getRGB();
        if (compositeState <= COMP_ALPHA &&
            imageComp != CompositeType.SrcNoEa &&
            imageComp != CompositeType.SrcOverNoEa)
        {
            AlphaComposite alphacomp = (AlphaComposite) composite;
            int a = Math.round(alphacomp.getAlpha() * (eargb >>> 24));
            eargb = (eargb & 0x00ffffff) | (a << 24);
        }
    }
    this.eargb = eargb;
    this.pixel = surfaceData.pixelFor(eargb);
}
项目:BrainControl    文件LevelRenderer.java   
public LevelRenderer(Level level,GraphicsConfiguration graphicsConfiguration,int width,int height) {
        this.width = width;
        this.height = height;

        this.level = level;
        image = graphicsConfiguration.createCompatibleImage(width,Transparency.TRANSLUCENT);

        g = (Graphics2D) image.getGraphics();
        g.setComposite(AlphaComposite.Src);

//      //ENABLE PARTIAL TRANSPARENCY FOR LEVEL (AND BACKGROUND?)
//      AlphaComposite ac = java.awt.AlphaComposite.getInstance(AlphaComposite.SRC_OVER);
//        g.setComposite(ac);       

        updateArea(0,height);
    }
项目:Tarski    文件mxGraphHandler.java   
/**
 *
 */
public void paint(Graphics g) {
  if (isVisible() && previewBounds != null) {
    if (dragImage != null) {
      // LATER: Clipping with mxUtils doesnt fix the problem
      // of the drawImage being painted over the scrollbars
      Graphics2D tmp = (Graphics2D) g.create();

      if (graphComponent.getPreviewAlpha() < 1) {
        tmp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,graphComponent.getPreviewAlpha()));
      }

      tmp.drawImage(dragImage.getimage(),previewBounds.x,previewBounds.y,dragImage.getIconWidth(),dragImage.getIconHeight(),null);
      tmp.dispose();
    } else if (!imagePreview) {
      mxSwingConstants.PREVIEW_BORDER.paintBorder(graphComponent,previewBounds.width,previewBounds.height);
    }
  }
}
项目:geomapapp    文件MaskToWorldWindTiler.java   
private static BufferedImage resizeImage(BufferedImage sample,double sampleMinLat,double sampleMaxLat,double tileMinLat,double tileMaxLat) {
    BufferedImage img = new BufferedImage(TILE_SIZE,TILE_SIZE,BufferedImage.TYPE_INT_ARGB);
    for (int x = 0; x < TILE_SIZE; x++)
        for (int y = 0; y < TILE_SIZE; y++)
            img.setRGB(x,0x80000000);

    double tileScale = TILE_SIZE / (tileMinLat - tileMaxLat);

    // s for source; d for destination; all measurements in pixels
    int sx1 = 0;
    int sy1 = 0;
    int sx2 = sample.getWidth();
    int sy2 = sample.getHeight();

    int dx1 = 0;
    int dy1 = (int) ((sampleMaxLat - tileMaxLat) * tileScale);
    int dx2 = TILE_SIZE;
    int dy2 = (int) ((sampleMinLat - tileMaxLat) * tileScale);

    Graphics2D g = img.createGraphics();
    g.setComposite( AlphaComposite.Src );
    g.drawImage(sample,dx1,dy1,dx2,dy2,sx2,sy2,null);

    return img;
}
项目:openjdk-jdk10    文件ImageTests.java   
public void modifyTest(TestEnvironment env) {
    int size = env.getIntValue(sizeList);
    Image src = tsit.getimage(env,size-mid);
    }
    g.dispose();
    env.setSrcImage(src);
}
项目:freecol    文件DeclarationPanel.java   
/**
 * {@inheritDoc}
 */
@Override
public void paintComponent(Graphics g) {
    if (points == null || points.length == 0) {
        return;
    }
    if (isOpaque()) {
        super.paintComponent(g);
    }

    g.setColor(Color.BLACK);
    ((Graphics2D)g).setComposite(AlphaComposite
        .getInstance(AlphaComposite.SRC_OVER,0.75f));

    for (int i = 0; i < counter-1; i++) {
        Point p1 = points[i];
        Point p2 = points[i+1];
        g.drawLine((int) p1.getX(),(int) p1.getY(),(int) p2.getX(),(int) p2.getY());
    }
}
项目:jdk8u-jdk    文件DrawImage.java   
/**
 * Return a non-accelerated BufferedImage of the requested type with the
 * indicated subimage of the original image located at 0,which we kNow we have. And
 *      acceleration can change the type of the surface
 * <li> Image will be used only once and acceleration caching wouldn't help
 * </ul>
 */
BufferedImage makeBufferedImage(Image img,null);
    g2d.dispose();
    return bimg;
}
项目:brModelo    文件Desenhador.java   
public void DrawImagem(Graphics2D g) {
    BufferedImage imgB = getimagem();
    if (imgB == null) {
        return;
    }
    Rectangle rec = getBounds();
    rec.grow(-2,-2);
    if (imgres == null) {
        imgres = imgB.getScaledInstance(rec.width,rec.height,Image.SCALE_SMOOTH);
    }

    Composite originalComposite = g.getComposite();
    if (alfa != 1f) {
        int type = AlphaComposite.SRC_OVER;
        g.setComposite(AlphaComposite.getInstance(type,alfa));
    }
    Image img = imgres;
    if (isdisablePainted()) {
        img = util.Utilidades.dye(new ImageIcon(imgres),disabledColor);
    }

    g.drawImage(img,rec.x,rec.y,null);
    g.setComposite(originalComposite);
}
项目:Openjsharp    文件ImageTests.java   
public void modifyTest(TestEnvironment env) {
    int size = env.getIntValue(sizeList);
    Image src = tsit.getimage(env,size-mid);
    }
    g.dispose();
    env.setSrcImage(src);
}
项目:openvisualtraceroute    文件Glasspane.java   
/**
 * @see javax.swing.JComponent#paint(java.awt.Graphics)
 */
@Override
public void paint(final Graphics g) {
    // transparent panel
    if (g instanceof Graphics2D) {
        ((Graphics2D) g).setComposite(AlphaComposite.getInstance(java.awt.AlphaComposite.SRC_OVER,0.7f));
    }
    super.paint(g);
}
项目:jdk8u-jdk    文件OpaqueImagetoSurfaceBlitTest.java   
public static void main(String[] args) {

        GraphicsEnvironment ge =
            GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice gd = ge.getDefaultScreenDevice();
        GraphicsConfiguration gc = gd.getDefaultConfiguration();
        VolatileImage vi = gc.createCompatibleVolatileImage(16,16);
        vi.validate(gc);

        BufferedImage bi =
            new BufferedImage(2,2,BufferedImage.TYPE_INT_RGB);
        int data[] = ((DataBufferInt)bi.getRaster().getDataBuffer()).getData();
        data[0] = 0x0000007f;
        data[1] = 0x0000007f;
        data[2] = 0xff00007f;
        data[3] = 0xff00007f;
        Graphics2D g = vi.createGraphics();
        g.setComposite(AlphaComposite.SrcOver.derive(0.999f));
        g.drawImage(bi,null);

        bi = vi.getSnapshot();
        if (bi.getRGB(0,0) != bi.getRGB(1,1)) {
            throw new RuntimeException("Test Failed: color at 0x0 ="+
                Integer.toHexString(bi.getRGB(0,0))+" differs from 1x1 ="+
                Integer.toHexString(bi.getRGB(1,1)));
        }

        System.out.println("Test PASSED.");
    }
项目:litiengine    文件OrthogonalMapRenderer.java   
/**
 * Gets the layer image.
 *
 * @param layer
 *          the layer
 * @param map
 *          the map
 * @return the layer image
 */
private synchronized BufferedImage getLayerImage(final ITileLayer layer,final IMap map,boolean includeAnimationTiles) {
  // if we have already retrived the image,use the one from the cache to
  // draw the layer
  final String cacheKey = messageformat.format("{0}_{1}",getCacheKey(map),layer.getName());
  if (ImageCache.MAPS.containsKey(cacheKey)) {
    return ImageCache.MAPS.get(cacheKey);
  }
  final BufferedImage bufferedImage = ImageProcessing.getCompatibleImage(layer.getSizeInTiles().width * map.getTileSize().width,layer.getSizeInTiles().height * map.getTileSize().height);

  // we need a graphics 2D object to work with transparency
  final Graphics2D imageGraphics = bufferedImage.createGraphics();

  // set alpha value of the tiles by the layers value
  final AlphaComposite ac = java.awt.AlphaComposite.getInstance(AlphaComposite.SRC_OVER,layer.getopacity());
  imageGraphics.setComposite(ac);

  layer.getTiles().parallelStream().forEach(tile -> {
    // get the tile from the tileset image
    final int index = layer.getTiles().indexOf(tile);
    if (tile.getGridId() == 0) {
      return;
    }

    if (!includeAnimationTiles && MapUtilities.hasAnimation(map,tile)) {
      return;
    }

    final Image tileTexture = getTileImage(map,tile);

    // draw the tile on the layer image
    final int x = index % layer.getSizeInTiles().width * map.getTileSize().width;
    final int y = index / layer.getSizeInTiles().width * map.getTileSize().height;
    RenderEngine.renderImage(imageGraphics,tileTexture,x,y);
  });

  ImageCache.MAPS.put(cacheKey,bufferedImage);
  return bufferedImage;
}
项目:openjdk-jdk10    文件EffectUtils.java   
/**
 * Clear a transparent image to 100% transparent
 *
 * @param img The image to clear
 */
static void clearImage(BufferedImage img) {
    Graphics2D g2 = img.createGraphics();
    g2.setComposite(AlphaComposite.Clear);
    g2.fillRect(0,img.getWidth(),img.getHeight());
    g2.dispose();
}
项目:openjdk-jdk10    文件CompositeType.java   
/**
 * Return a CompositeType object for the specified AlphaComposite
 * rule.
 */
public static CompositeType forAlphaComposite(AlphaComposite ac) {
    switch (ac.getRule()) {
    case AlphaComposite.CLEAR:
        return Clear;
    case AlphaComposite.SRC:
        if (ac.getAlpha() >= 1.0f) {
            return SrcNoEa;
        } else {
            return Src;
        }
    case AlphaComposite.DST:
        return Dst;
    case AlphaComposite.SRC_OVER:
        if (ac.getAlpha() >= 1.0f) {
            return SrcOverNoEa;
        } else {
            return SrcOver;
        }
    case AlphaComposite.DST_OVER:
        return DstOver;
    case AlphaComposite.SRC_IN:
        return SrcIn;
    case AlphaComposite.DST_IN:
        return DstIn;
    case AlphaComposite.SRC_OUT:
        return SrcOut;
    case AlphaComposite.DST_OUT:
        return DstOut;
    case AlphaComposite.SRC_ATOP:
        return SrcAtop;
    case AlphaComposite.DST_ATOP:
        return DstAtop;
    case AlphaComposite.XOR:
        return AlphaXor;
    default:
        throw new InternalError("Unrecognized alpha rule");
    }
}
项目:Openjsharp    文件GraphicsPrimitive.java   
protected static void convertTo(Blit ob,SurfaceData srcImg,SurfaceData dstImg,Region clip,int dstX,int dstY,int w,int h)
{
    if (ob != null) {
        ob.Blit(srcImg,dstImg,AlphaComposite.Src,clip,dstX,dstY,w,h);
    }
}
项目:parabuild-ci    文件Plot.java   
/**
 * Fills the specified area with the background paint.
 * 
 * @param g2  the graphics device.
 * @param area  the area.
 */
protected void fillBackground(Graphics2D g2,Rectangle2D area) {
    if (this.backgroundPaint != null) {
        Composite originalComposite = g2.getComposite();
        g2.setComposite(
            AlphaComposite.getInstance(AlphaComposite.SRC_OVER,this.backgroundAlpha)
        );
        g2.setPaint(this.backgroundPaint);
        g2.fill(area);
        g2.setComposite(originalComposite);
    }        
}
项目:incubator-netbeans    文件AquaSlidingButtonUI.java   
@Override
protected void paintIcon(Graphics g,AbstractButton b,Rectangle iconRect) {
    Graphics2D g2d = (Graphics2D) g;

    Composite comp = g2d.getComposite();
    if( b.getModel().isRollover() || b.getModel().isSelected() ) {
        g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.5f));
    }
    super.paintIcon(g,b,iconRect);
    g2d.setComposite(comp);
}
项目:openjdk-jdk10    文件JPEGsNotAcceleratedTest.java   
public BufferedImage getDestimage() {
    BufferedImage destBI =
        new BufferedImage(TEST_W,TEST_H,BufferedImage.TYPE_INT_RGB);
    Graphics2D g = (Graphics2D)destBI.getGraphics();
    g.setComposite(AlphaComposite.Src);
    g.setColor(Color.blue);
    g.fillRect(0,TEST_W,TEST_H);
    return destBI;
}
项目:Openjsharp    文件SunCompositeContext.java   
public SunCompositeContext(AlphaComposite ac,ColorModel s,ColorModel d)
{
    if (s == null) {
        throw new NullPointerException("Source color model cannot be null");
    }
    if (d == null) {
        throw new NullPointerException("Destination color model cannot be null");
    }
    srcCM = s;
    dstCM = d;
    this.composite = ac;
    this.comptype = CompositeType.forAlphaComposite(ac);
}
项目:incubator-netbeans    文件DnDSupport.java   
private BufferedImage createContentimage( JComponent c,Dimension contentSize ) {
    GraphicsConfiguration cfg = GraphicsEnvironment.getLocalGraphicsEnvironment()
                .getDefaultScreenDevice().getDefaultConfiguration();

    boolean opaque = c.isOpaque();
    c.setopaque(true);
    BufferedImage res = cfg.createCompatibleImage(contentSize.width,contentSize.height);
    Graphics2D g = res.createGraphics();
    g.setColor( c.getBackground() );
    g.fillRect(0,contentSize.width,contentSize.height);
    g.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.5f ));
    c.paint(g);
    c.setopaque(opaque);
    return res;
}
项目:incubator-netbeans    文件ScaleFx.java   
public void paint(Graphics g) {
    Rectangle bounds = getBounds();

    if (origImage == null) {
        if (comp == null) {
            return;
        }
        origImage = tryCreateImage();
        if (origImage == null) {
            return;
        }
    }
    Image img = origImage;
    Graphics2D g2d = (Graphics2D) g;
    Composite origComposite = g2d.getComposite();
    g2d.setComposite (AlphaComposite.getInstance(AlphaComposite.SRC_OVER,alpha));
    /*AffineTransform at = AffineTransform.getScaleInstance(
        (double)bounds.width / (double)scaleSource.width,(double)bounds.height / (double)scaleSource.height);
    g2d.setTransform(at);*/
    g2d.drawImage(img,bounds.width,bounds.height,null);
    //SwingUtilities.paintComponent(g,getComponent(0),this,bounds.height);
    //super.paint(g2d);

    if (origComposite != null) {
        g2d.setComposite(origComposite);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。