Skip to content

nathsou/Canvas2D

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Canvas2D

Canvas2D allows you to easily manipulate pixel arrays

//Creating the canvas
Canvas2D canvas = new Canvas2D(800, 600, Color.white);
canvas.setStrokeColor(Color.black);

Simple shapes

Points and Lines

//Drawing a point
canvas.setRGB(10, 10, Color.red);

//Drawing lines
canvas.drawLine(new Point(40, 35), new Point(40, 125));
canvas.drawLine(new Point(160, 35), new Point(160, 125));
canvas.drawLine(new Point(30, 175), new Point(30, 150));
canvas.drawLine(new Point(30, 150), new Point(170, 175));
canvas.drawLine(new Point(30, 175), new Point(170, 175));

Lines

Polygons

Polygon triangle = new Polygon(new Point(175, 175), 3, 150);
canvas.draw(triangle);
        
Polygon heptagon = new Polygon(new Point(500, 175), 7, 150);
canvas.setStrokeColor(Color.red);
canvas.draw(heptagon);
        
canvas.fillRegion(new Point(0, 350), new Point(700, 700), Color.black);

Polygon square = new Rectangle(new Point(175, 525), 150, 150);
canvas.setStrokeColor(Color.white);
canvas.draw(square);
        
//A circle is considered as a Polygon
Polygon circle = new Circle(new Point(500, 525), 150);
canvas.setStrokeColor(Color.green);
canvas.draw(circle);

Polygons

You can also draw non regular polygons:

Polygon weirdPolygon = new Polygon(new Point[]{
         new Point(100, 200),
         new Point(150, 80),
         new Point(227, 169),
         new Point(10, 260),
         new Point(10, 10),
 });

        canvas.draw(strangePolygon);

Polygons

####Manipulating images

To demonstrate how Canvas2D handles image manipulation, we will create a canvas using the following image :

Painting from Eugène Galien-Laloue

The CanvasFilters abstract class offers some image filters such as:

####Gray scaling

//To manipulate images, Canvas2D uses its own Pixmap class
Canvas2D canvas = new Canvas2D(new Pixmap("Pictures/larc-de-triomphe-paris-eugene-galien-laloue.jpg")));
canvas = CanvasFilters.grayScale(canvas);

GrayScaling

####Negative/Inverse

canvas = CanvasFilters.negative(canvas);

Negative

#####Threshold

canvas = CanvasFilters.naiveTreshold(canvas, 10);

Threshold

####Canny Edge Detection

canvas = CanvasFilters.cannyEdge(canvas);

CannyEdgeDetection

####Pixelization

canvas = CanvasFilters.pixelate(canvas, 5);

Pixelisation

####Color filtering

canvas = CanvasFilters.filterColor(canvas, new Color(154, 139, 130), 25);

ColorFiltering

##Combining filters

canvas = CanvasFilters.pixelate(canvas, 2);
canvas = CanvasFilters.naiveTreshold(canvas, 10);
canvas = CanvasFilters.replaceColor(canvas, Color.white, Color.orange, 1);

Combining

About

Simple pixel manipulation library in Java

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published