236 int dy1 = (2 * y * destHeight + srcHeight - 1) / (2 * srcHeight); 237 int outpix[]; 238 if (outpixbuf != null && outpixbuf instanceof int[]) { 239 outpix = (int[]) outpixbuf; 240 } else { 241 outpix = new int[destWidth]; 242 outpixbuf = outpix; 243 } 244 for (int dy = dy1; (sy = srcrows[dy]) < y + h; dy++) { 245 int srcoff = off + scansize * (sy - y); 246 int dx; 247 for (dx = dx1; (sx = srccols[dx]) < x + w; dx++) { 248 outpix[dx] = pixels[srcoff + sx - x]; 249 } 250 if (dx > dx1) { 251 consumer.setPixels(dx1, dy, dx - dx1, 1, 252 model, outpix, dx1, destWidth); 253 } 254 } 255 } 256 } | 236 int dy1 = (2 * y * destHeight + srcHeight - 1) / (2 * srcHeight); 237 int outpix[]; 238 if (outpixbuf != null && outpixbuf instanceof int[]) { 239 outpix = (int[]) outpixbuf; 240 } else { 241 outpix = new int[destWidth]; 242 outpixbuf = outpix; 243 } 244 for (int dy = dy1; (sy = srcrows[dy]) < y + h; dy++) { 245 int srcoff = off + scansize * (sy - y); 246 int dx; 247 for (dx = dx1; (sx = srccols[dx]) < x + w; dx++) { 248 outpix[dx] = pixels[srcoff + sx - x]; 249 } 250 if (dx > dx1) { 251 consumer.setPixels(dx1, dy, dx - dx1, 1, 252 model, outpix, dx1, destWidth); 253 } 254 } 255 } 256 257 @Override 258 public ImageFilter getScaledFilterInstance(double scaleX, double scaleY) { 259 Object instance = super.getScaledFilterInstance(scaleX, scaleY); 260 ReplicateScaleFilter filter = (ReplicateScaleFilter) instance; 261 filter.destWidth = (int) Math.floor(destWidth * scaleX); 262 filter.destHeight = (int) Math.floor(destHeight * scaleY); 263 return filter; 264 } 265 } |