3101 return null;
3102 }
3103 sx1 = Region.clipScale(sx1, scaleX);
3104 sx2 = Region.clipScale(sx2, scaleX);
3105 sy1 = Region.clipScale(sy1, scaleY);
3106 sy2 = Region.clipScale(sy2, scaleY);
3107
3108 AffineTransform tx = null;
3109 if (xform != null) {
3110 tx = new AffineTransform(transform);
3111 transform(xform);
3112 }
3113 boolean result = scaleImage(img, dx1, dy1, dx2, dy2,
3114 sx1, sy1, sx2, sy2,
3115 bgcolor, observer);
3116 if (tx != null) {
3117 transform.setTransform(tx);
3118 invalidateTransform();
3119 }
3120 return result;
3121 } else if (resolutionVariantHint != SunHints.INTVAL_RESOLUTION_VARIANT_BASE
3122 && (img instanceof MultiResolutionImage)) {
3123 // get scaled destination image size
3124
3125 int width = img.getWidth(observer);
3126 int height = img.getHeight(observer);
3127
3128 MultiResolutionImage mrImage = (MultiResolutionImage) img;
3129 Image resolutionVariant = getResolutionVariant(mrImage, width, height,
3130 dx1, dy1, dx2, dy2,
3131 sx1, sy1, sx2, sy2,
3132 xform);
3133
3134 if (resolutionVariant != img && resolutionVariant != null) {
3135 // recalculate source region for the resolution variant
3136
3137 ImageObserver rvObserver = MultiResolutionToolkitImage.
3138 getResolutionVariantObserver(img, observer,
3139 width, height, -1, -1);
3140
3141 int rvWidth = resolutionVariant.getWidth(rvObserver);
3142 int rvHeight = resolutionVariant.getHeight(rvObserver);
|
3101 return null;
3102 }
3103 sx1 = Region.clipScale(sx1, scaleX);
3104 sx2 = Region.clipScale(sx2, scaleX);
3105 sy1 = Region.clipScale(sy1, scaleY);
3106 sy2 = Region.clipScale(sy2, scaleY);
3107
3108 AffineTransform tx = null;
3109 if (xform != null) {
3110 tx = new AffineTransform(transform);
3111 transform(xform);
3112 }
3113 boolean result = scaleImage(img, dx1, dy1, dx2, dy2,
3114 sx1, sy1, sx2, sy2,
3115 bgcolor, observer);
3116 if (tx != null) {
3117 transform.setTransform(tx);
3118 invalidateTransform();
3119 }
3120 return result;
3121 } else if (img instanceof MultiResolutionImage) {
3122 // get scaled destination image size
3123
3124 int width = img.getWidth(observer);
3125 int height = img.getHeight(observer);
3126
3127 MultiResolutionImage mrImage = (MultiResolutionImage) img;
3128 Image resolutionVariant = getResolutionVariant(mrImage, width, height,
3129 dx1, dy1, dx2, dy2,
3130 sx1, sy1, sx2, sy2,
3131 xform);
3132
3133 if (resolutionVariant != img && resolutionVariant != null) {
3134 // recalculate source region for the resolution variant
3135
3136 ImageObserver rvObserver = MultiResolutionToolkitImage.
3137 getResolutionVariantObserver(img, observer,
3138 width, height, -1, -1);
3139
3140 int rvWidth = resolutionVariant.getWidth(rvObserver);
3141 int rvHeight = resolutionVariant.getHeight(rvObserver);
|