@Override public BufferedImage doTransform(BufferedImage src, BufferedImage dest) { if (filter == null) { filter = new EmbossFilter(NAME); } filter.setAzimuth((float) lightDirection.getValueInIntuitiveRadians()); filter.setBumpHeight(bumpHeight.getValueAsPercentage()); filter.setElevation((float) lightElevation.getValueInIntuitiveRadians()); filter.setEmboss(texture.isChecked()); dest = filter.filter(src, dest); return dest; } }
new LockableUI(new BufferedImageOpEffect(new BlurFilter())); private EnhancedLockableUI embossUI = new EnhancedLockableUI(new BufferedImageOpEffect(new EmbossFilter())); private LockableUI busyPainterUI = new BusyPainterUI();
@Override protected int[] filterPixels(int width, int height, int[] inPixels, Rectangle transformedSpace) { pt = createProgressTracker(height); finishProgressTracker();
protected void buildInitialFactories() { com.jhlabs.image.EmbossFilter emboss = new com.jhlabs.image.EmbossFilter(); com.jhlabs.image.SphereFilter sphere = new com.jhlabs.image.SphereFilter(); com.jhlabs.image.RippleFilter rippleBack = new com.jhlabs.image.RippleFilter();
public static BufferedImage bumpMap(BufferedImage src, BufferedImage bumpMapSource, Composite composite, float azimuth, float elevation, float bumpHeight, String filterName) { // TODO optimize it so that the bumpMapSource can be smaller, and an offset is given - useful for text effects // tiling could be also an option EmbossFilter embossFilter = new EmbossFilter(filterName); embossFilter.setAzimuth(azimuth); embossFilter.setElevation(elevation); embossFilter.setBumpHeight(bumpHeight); BufferedImage bumpMap = embossFilter.filter(bumpMapSource, null); BufferedImage dest = ImageUtils.copyImage(src); Graphics2D g = dest.createGraphics(); g.setComposite(composite); g.drawImage(bumpMap, 0, 0, null); g.dispose(); return dest; }