Skip to content

Commit 94c563e

Browse files
committedDec 14, 2017
color circle
1 parent 7e8eb0f commit 94c563e

15 files changed

+89
-6
lines changed
 

‎pillow/color circles/README.md

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,33 @@
1-
## main.py
1+
![#1](images/normal_rgb.png?raw=true)
2+
3+
## Using [Image.merge()](http://pillow.readthedocs.io/en/4.3.x/reference/Image.html#PIL.Image.merge)
24

35
Using grayscale layers to create `RGB` image with color circles.
46

5-
![#1](images/normal_rgb.png?raw=true)
7+
![#1](images/normal_result.png?raw=true)
68

79
Using inverted layers.
810

9-
![#1](images/inverted_rgb.png?raw=true)
11+
![#1](images/inverted_result.png?raw=true)
12+
13+
## Using [ImageChop.add()](en/3.4.x/reference/ImageChops.html#PIL.ImageChops.add)
14+
15+
![#1](images/normal_result_add.png?raw=true)
16+
17+
![#1](images/inverted_result_add.png?raw=true)
1018

1119
---
1220

13-
### Merging images using ImageMagick
21+
### Creating preview using [ImageMagick](https://www.imagemagick.org/script/index.php#)
1422

1523
$ montage -tile 4x1 normal_layer_r.png normal_layer_g.png normal_layer_b.png normal_rgb.png normal_result.png
1624

1725
$ montage -background black -tile 4x1 inverted_layer_r.png inverted_layer_g.png inverted_layer_b.png inverted_rgb.png inverted_result.png
1826

19-
![#1](images/normal_result.png?raw=true)
2027

21-
![#1](images/inverted_result.png?raw=true)
28+
29+
$ montage -tile 4x1 inverted_layer_r.png inverted_layer_g.png inverted_layer_b.png inverted_add.png inverted_result_add.png
30+
31+
$ montage -background black -tile 4x1 normal_layer_r.png normal_layer_g.png normal_layer_b.png normal_add.png normal_result_add.png
32+
2233

1.57 KB
Loading
Loading
2.42 KB
Loading
Loading
3.85 KB
Loading
2.77 KB
Loading
2.81 KB
Loading
2.84 KB
Loading

‎pillow/color circles/main-2.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
from PIL import Image, ImageDraw, ImageChops
2+
3+
def synthese(red=255, green=255, blue=255, background=0, file_prefix=''):
4+
5+
# layers in greyscale
6+
layer_R = Image.new('L', (450, 450), background)
7+
layer_G = Image.new('L', (450, 450), background)
8+
layer_B = Image.new('L', (450, 450), background)
9+
10+
# draw circle on red layer
11+
draw_R = ImageDraw.Draw(layer_R)
12+
draw_R.ellipse((10,150,300,440), red)
13+
14+
# draw circle on green layer
15+
draw_G = ImageDraw.Draw(layer_G)
16+
draw_G.ellipse((150,150,440,440), green)
17+
18+
# draw circle on blue layer
19+
draw_B = ImageDraw.Draw(layer_B)
20+
draw_B.ellipse((75,10,375,300), blue)
21+
22+
#layer_R.show()
23+
#layer_G.show()
24+
#layer_B.show()
25+
26+
#layer_R.save(file_prefix + 'layer_r.png')
27+
#layer_G.save(file_prefix + 'layer_g.png')
28+
#layer_B.save(file_prefix + 'layer_b.png')
29+
30+
# create RGB image using greyscale layers
31+
image_RGB = Image.merge('RGB', (layer_R, layer_G, layer_B))
32+
33+
# show it
34+
#image_RGB.show()
35+
#image_RGB.save(file_prefix + 'rgb.png')
36+
37+
result = ImageChops.add(layer_R, layer_G)
38+
result = ImageChops.add(result, layer_B)
39+
result.save(file_prefix + 'add.png')
40+
result.show()
41+
42+
synthese(255, 255, 255, 0, 'normal_')
43+
synthese(0, 0, 0, 255, 'inverted_')

‎pillow/color circles/main-3.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from PIL import Image, ImageDraw, ImageChops
2+
3+
def synthese(red=255, green=255, blue=255, file_prefix=''):
4+
5+
# transparent images
6+
image_R = Image.new('RGBA', (450, 450), 0)
7+
image_G = Image.new('RGBA', (450, 450), 0)
8+
image_B = Image.new('RGBA', (450, 450), 0)
9+
10+
# draw circle on red layer
11+
draw_R = ImageDraw.Draw(image_R)
12+
draw_R.ellipse((10,150,300,440), (red, 0, 0))
13+
14+
# draw circle on green layer
15+
draw_G = ImageDraw.Draw(image_G)
16+
draw_G.ellipse((150,150,440,440), (0, green, 0))
17+
18+
# draw circle on blue layer
19+
draw_B = ImageDraw.Draw(image_B)
20+
draw_B.ellipse((75,10,375,300), (0, 0, blue))
21+
22+
result = ImageChops.add(image_R, image_G, 0.5)
23+
result = ImageChops.add(result, image_B, 0.5)
24+
25+
#result.save(file_prefix + 'add_RGB.png')
26+
result.show()
27+
28+
synthese(255, 255, 255, 'normal_')
29+
4.81 KB
Loading
2.43 KB
Loading
2.49 KB
Loading
2.49 KB
Loading

0 commit comments

Comments
 (0)
Please sign in to comment.