< prev index next >

src/java.desktop/share/classes/sun/java2d/pipe/DrawImage.java

Print this page

        

*** 338,348 **** * 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> */ ! 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); --- 338,348 ---- * 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);
*** 428,441 **** } } if (isBgOperation(srcData, bgColor)) { // We cannot perform bg operations during transform so make ! // an opaque temp image with the appropriate background ! // and work from there. ! img = makeBufferedImage(img, bgColor, BufferedImage.TYPE_INT_RGB, ! sx1, sy1, sx2, sy2); // Temp image has appropriate subimage at 0,0 now. sx2 -= sx1; sy2 -= sy1; sx1 = sy1 = 0; --- 428,447 ---- } } if (isBgOperation(srcData, bgColor)) { // We cannot perform bg operations during transform so make ! // a temp image with the appropriate background based on ! // background alpha value and work from there. If background ! // alpha is opaque use INT_RGB else use INT_ARGB so that we ! // will not lose translucency of background. ! ! int bgAlpha = bgColor.getAlpha(); ! int type = ((bgAlpha == 255) ! ? BufferedImage.TYPE_INT_RGB ! : BufferedImage.TYPE_INT_ARGB); ! img = makeBufferedImage(img, bgColor, type, sx1, sy1, sx2, sy2); // Temp image has appropriate subimage at 0,0 now. sx2 -= sx1; sy2 -= sy1; sx1 = sy1 = 0;
< prev index next >