Advertisement
pseudocreator

DisplFilters

Aug 18th, 2015
452
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.52 KB | None | 0 0
  1. package cg2d.v4jpaint.filters;
  2. import cg2d.v4jpaint.base.BaseFilter;
  3.  
  4. import java.awt.Point;
  5. import java.awt.image.BufferedImage;
  6.  
  7.  
  8. public class DisplFilters implements BaseFilter {
  9.  
  10.     public BufferedImage process(BufferedImage image){
  11.         int W = image.getWidth();
  12.         int H = image.getHeight();
  13.         BufferedImage result = clone(image);
  14.        
  15.         Point[][]dmx = new Point[W][H];
  16.            
  17.         /* Vertical Flip
  18.         for(int x = 0; x < W; x++)
  19.             for(int y = 0; y < H; y++)
  20.                 dmx[x][y] = new Point(x, H - y - 1);
  21.         */
  22.         /*Horizontal Flip
  23.         for (int x = 0; x < width; x++)
  24.             for (int y = 0; y < height; y++)
  25.                 dmx[x][y] = new Point(width - x - 1, y);
  26.         */
  27.  
  28.         //Wave
  29.         for(int x = 0; x < W; x++)
  30.             for(int y = 0; y < H; y++){
  31.                 int newY = (int) (y + Math.sin(x * 0.03) * 15.0);
  32.                 dmx[x][y] = new Point(x, newY);
  33.             }
  34.        
  35.         for(int x = 0; x < W; x++)
  36.             for(int y = 0; y < H; y++){
  37.                 int pixel = image.getRGB(x, y);
  38.        
  39.                 int newX = dmx[x][y].x;
  40.                 int newY = dmx[x][y].y;
  41.                
  42.                 if ((newX >= 0) && (newX < W) && (newY >= 0) && (newY < H))
  43.                     result.setRGB(newX, newY, pixel);
  44.                 else
  45.                     result.setRGB(x, y, pixel); // ostavi piksel tu gde jeste
  46.                    
  47.             }
  48.         return result;
  49.     }
  50.    
  51.     private BufferedImage clone(BufferedImage source){
  52.         int W = source.getWidth();
  53.         int H = source.getHeight();
  54.         BufferedImage result = new BufferedImage(W,H,BufferedImage.TYPE_INT_RGB);
  55.        
  56.         for(int x = 0; x < W; x++)
  57.             for(int y = 0; y < H; y++)
  58.                 result.setRGB(x, y, source.getRGB(x, y));  
  59.  
  60.        
  61.         return result;
  62.     }
  63.  
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement