Skip to content

Commit dae4e32

Browse files
committed
new examples
1 parent dc9f66c commit dae4e32

File tree

35 files changed

+789
-4
lines changed

35 files changed

+789
-4
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
Use `BeautifulSoup`, `lxml` or similar module instead of `regex`.
2+
3+
---
4+
5+
[BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/):
6+
7+
from bs4 import BeautifulSoup
8+
9+
text = '<div class="ds"><div title="Today" class="dh">...<div title="Pazartesi" class="dh">26 Agu Pzt'
10+
11+
soup = BeautifulSoup(text, 'html.parser')
12+
13+
for item in soup.select('.ds div[title]'):
14+
print(item['title'])
15+
16+
# or as list comprehensions
17+
18+
titles = [item['title'] for item in soup.select('.ds div[title]')]
19+
print(titles)
20+
21+
---
22+
23+
[lxml](https://lxml.de/):
24+
25+
import lxml.html
26+
27+
text = '<div class="ds"><div title="Today" class="dh">...<div title="Pazartesi" class="dh">26 Agu Pzt'
28+
29+
soup = lxml.html.fromstring(text)
30+
31+
for item in soup.cssselect('.ds div[title]'):
32+
print(item.attrib['title'])
33+
34+
# or as list comprehensions
35+
36+
titles = [item.attrib['title'] for item in soup.cssselect('.ds div[title]')]
37+
print(titles)
38+
39+
---
40+
41+
[PyQuery](https://docs.scrapy.org/en/latest/topics/selectors.html):
42+
43+
import pyquery
44+
45+
text = '<div class="ds"><div title="Today" class="dh">...<div title="Pazartesi" class="dh">26 Agu Pzt'
46+
47+
soup = pyquery.PyQuery(text)
48+
49+
for item in soup('.ds div[title]'):
50+
print(item.attrib['title'])
51+
52+
# or as list comprehensions
53+
54+
titles = [item.attrib['title'] for item in soup('.ds div[title]')]
55+
print(titles)
56+
57+
---
58+
59+
[parsel](https://parsel.readthedocs.io/en/latest/): (used by [Scrapy's Selectors](https://docs.scrapy.org/en/latest/topics/selectors.html))
60+
61+
import parsel
62+
63+
sel = parsel.Selector(text)
64+
65+
for item in sel.css('.ds div[title]'):
66+
print(item.attrib['title'])
67+
68+
# or as list comprehensions
69+
70+
titles = [item.attrib['title'] for item in sel.css('.ds div[title]')]
71+
print(titles)
72+
73+

dash/dynamic-page/main.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
# date: 2019.08.26
3+
# layout as function to change it in any reload
4+
import dash
5+
import dash_html_components as html
6+
import datetime
7+
8+
9+
app = dash.Dash(__name__)
10+
11+
# static layout. It has to restart script to change date
12+
#app.layout = html.Div([
13+
# html.Div(datetime.datetime.now().strftime("%H:%M:%S"))
14+
#])
15+
16+
# dynamic layout. It change date in every reload
17+
18+
def layout():
19+
return html.Div([
20+
html.Div(datetime.datetime.now().strftime("%H:%M:%S"))
21+
])
22+
23+
app.layout = layout
24+
25+
26+
if __name__ == '__main__':
27+
app.run_server()#debug=True)
1.32 KB
Loading
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
#------------------------------------------------------------------------------
3+
# decode from base64 to jpg
4+
#------------------------------------------------------------------------------
5+
6+
import base64
7+
8+
html = '<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QM8RXhpZgAASUkqAAgAAAAJAAABCQABAAAACgAAAAEBCQABAAAACgAAABIBCQABAAAAAQAAABoBCQABAAAASAAAABsBCQABAAAASAAAACgBCQABAAAAAgAAADIBAgAUAAAAegAAABMCCQABAAAAAQAAAGmHBAABAAAAjgAAANwAAAAyMDE5OjA5OjA3IDAzOjM0OjI0AAYAAJAHAAQAAAAwMjIxAZEHAAQAAAABAgMAAKAHAAQAAAAwMTAwAaAJAAEAAAABAAAAAqAJAAEAAAAKAAAAA6AJAAEAAAAKAAAAAAAAAAYAAwEDAAEAAAAGAAAAGgEJAAEAAABIAAAAGwEJAAEAAABIAAAAKAEJAAEAAAACAAAAAQIEAAEAAAAqAQAAAgIEAAEAAAAJAgAAAAAAAP/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwACAQEBAQECAQEBAgICAgIEAwICAgIFBAQDBAYFBgYGBQYGBgcJCAYHCQcGBggLCAkKCgoKCgYICwwLCgwJCgoK/9sAQwECAgICAgIFAwMFCgcGBwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK/8AAEQgACgAKAwEiAAIRAQMRAf/EABcAAAMBAAAAAAAAAAAAAAAAAAAICQr/xAAeEAACAgMBAQEBAAAAAAAAAAADBAIFAQYHCAkKAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwBreIO/LnqPAucdY9vi84XnaOgcv0baNhD2DkK9zum3WdgqCwsyV42SYbuxNhZhX1q9YAgEWVpJgGxhbFYvKH27+hb7F+WvaHXvMfFfaVgjpvOeoX+r6klbalS2zS9ZX2J1FRmefSM24WIRDxJhkpTlljMyEnOUpZP0Le3faHlr7F9p4r5j9d9Q5zpqNhUvpaloe/2NRWLtP0qD7zEFVDDFArDjTLRp4jiRTsFLPMpklLOp3U9T1XQtVrNF0XWa+lpKWvChTU1SlBZVBUMMDEuEQ8YgIUIRjCMI4xGMY4xjGMY/g//ZAP/bAEMAAgEBAQEBAgEBAQICAgICBAMCAgICBQQEAwQGBQYGBgUGBgYHCQgGBwkHBgYICwgJCgoKCgoGCAsMCwoMCQoKCv/bAEMBAgICAgICBQMDBQoHBgcKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCv/AABEIAAoACgMBIgACEQEDEQH/xAAXAAADAQAAAAAAAAAAAAAAAAAACAkK/8QAHhAAAgIDAQEBAQAAAAAAAAAAAwQCBQEGBwgJCgD/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8Aa3iDvy56jwLnHWPb4vOF52joHL9G2jYQ9g5Cvc7pt1nYKgsLMleNkmG7sTYWYV9avWAIBFlaSYBsYWxWLyh9u/oW+xflr2h17zHxX2lYI6bznqF/q+pJW2pUts0vWV9idRUZnn0jNuFiEQ8SYZKU5ZYzMhJzlKWT9C3t32h5a+xfaeK+Y/XfUOc6ajYVL6WpaHv9jUVi7T9Kg+8xBVQwxQKw40y0aeI4kU7BSzzKZJSzqd1PU9V0LVazRdF1mvpaSlrwoU1NUpQWVQVDDAxLhEPGICFCEYwjCOMRjGOMYxjGP4P/2Q==">'
9+
10+
data_base64 = html.split('base64,')[1] # remove text before encoded data
11+
data_base64 = data_base64[:-2] # remove text after encoded data
12+
13+
#data_base64 = '/9j/4AAQSkZJRgABAQAAAQABAAD/4QM8RXhpZgAASUkqAAgAAAAJAAABCQABAAAACgAAAAEBCQABAAAACgAAABIBCQABAAAAAQAAABoBCQABAAAASAAAABsBCQABAAAASAAAACgBCQABAAAAAgAAADIBAgAUAAAAegAAABMCCQABAAAAAQAAAGmHBAABAAAAjgAAANwAAAAyMDE5OjA5OjA3IDAzOjM0OjI0AAYAAJAHAAQAAAAwMjIxAZEHAAQAAAABAgMAAKAHAAQAAAAwMTAwAaAJAAEAAAABAAAAAqAJAAEAAAAKAAAAA6AJAAEAAAAKAAAAAAAAAAYAAwEDAAEAAAAGAAAAGgEJAAEAAABIAAAAGwEJAAEAAABIAAAAKAEJAAEAAAACAAAAAQIEAAEAAAAqAQAAAgIEAAEAAAAJAgAAAAAAAP/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwACAQEBAQECAQEBAgICAgIEAwICAgIFBAQDBAYFBgYGBQYGBgcJCAYHCQcGBggLCAkKCgoKCgYICwwLCgwJCgoK/9sAQwECAgICAgIFAwMFCgcGBwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK/8AAEQgACgAKAwEiAAIRAQMRAf/EABcAAAMBAAAAAAAAAAAAAAAAAAAICQr/xAAeEAACAgMBAQEBAAAAAAAAAAADBAIFAQYHCAkKAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwBreIO/LnqPAucdY9vi84XnaOgcv0baNhD2DkK9zum3WdgqCwsyV42SYbuxNhZhX1q9YAgEWVpJgGxhbFYvKH27+hb7F+WvaHXvMfFfaVgjpvOeoX+r6klbalS2zS9ZX2J1FRmefSM24WIRDxJhkpTlljMyEnOUpZP0Le3faHlr7F9p4r5j9d9Q5zpqNhUvpaloe/2NRWLtP0qD7zEFVDDFArDjTLRp4jiRTsFLPMpklLOp3U9T1XQtVrNF0XWa+lpKWvChTU1SlBZVBUMMDEuEQ8YgIUIRjCMI4xGMY4xjGMY/g//ZAP/bAEMAAgEBAQEBAgEBAQICAgICBAMCAgICBQQEAwQGBQYGBgUGBgYHCQgGBwkHBgYICwgJCgoKCgoGCAsMCwoMCQoKCv/bAEMBAgICAgICBQMDBQoHBgcKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCv/AABEIAAoACgMBIgACEQEDEQH/xAAXAAADAQAAAAAAAAAAAAAAAAAACAkK/8QAHhAAAgIDAQEBAQAAAAAAAAAAAwQCBQEGBwgJCgD/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8Aa3iDvy56jwLnHWPb4vOF52joHL9G2jYQ9g5Cvc7pt1nYKgsLMleNkmG7sTYWYV9avWAIBFlaSYBsYWxWLyh9u/oW+xflr2h17zHxX2lYI6bznqF/q+pJW2pUts0vWV9idRUZnn0jNuFiEQ8SYZKU5ZYzMhJzlKWT9C3t32h5a+xfaeK+Y/XfUOc6ajYVL6WpaHv9jUVi7T9Kg+8xBVQwxQKw40y0aeI4kU7BSzzKZJSzqd1PU9V0LVazRdF1mvpaSlrwoU1NUpQWVQVDDAxLhEPGICFCEYwjCOMRjGOMYxjGP4P/2Q=='
14+
15+
data_base64 = data_base64.encode() # convert string to bytes
16+
data = base64.b64decode(data_base64) # decode from base64 (bytes)
17+
open('output-image.jpg', 'wb').write(data) # write bytes to file
18+
19+
20+
21+
#------------------------------------------------------------------------------
22+
# encode jpg to base64 and embed in html
23+
#------------------------------------------------------------------------------
24+
25+
import base64
26+
27+
data = open('image.jpg', 'rb').read() # read bytes from file
28+
data_base64 = base64.b64encode(data) # encode to base64 (bytes)
29+
data_base64 = data_base64.decode() # convert bytes to string
30+
31+
print(data_base64)
32+
33+
html = '<img src="data:image/jpeg;base64,' + data_base64 + '">' # embed in html
34+
open('output-jpg.html', 'w').write(html)

decode-encode/base64-tiff-png-html/main-png.py renamed to decode-encode/base64-tiff-png-jpg-html/main-png.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
data_base64 = data_base64.encode() # convert string to bytes
1616
data = base64.b64decode(data_base64) # decode from base64 (bytes)
17-
open('image.png', 'wb').write(data) # write bytes to file
17+
open('output-image.png', 'wb').write(data) # write bytes to file
1818

1919

2020

decode-encode/base64-tiff-png-html/main-tiff.py renamed to decode-encode/base64-tiff-png-jpg-html/main-tiff.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
data_base64 = data_base64.encode() # convert string to bytes
1616
data = base64.b64decode(data_base64) # decode from base64 (bytes)
17-
open('image.tiff', 'wb').write(data) # write bytes to file
17+
open('output-image.tiff', 'wb').write(data) # write bytes to file
1818

1919

2020

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QM8RXhpZgAASUkqAAgAAAAJAAABCQABAAAACgAAAAEBCQABAAAACgAAABIBCQABAAAAAQAAABoBCQABAAAASAAAABsBCQABAAAASAAAACgBCQABAAAAAgAAADIBAgAUAAAAegAAABMCCQABAAAAAQAAAGmHBAABAAAAjgAAANwAAAAyMDE5OjA5OjA3IDAzOjM0OjI0AAYAAJAHAAQAAAAwMjIxAZEHAAQAAAABAgMAAKAHAAQAAAAwMTAwAaAJAAEAAAABAAAAAqAJAAEAAAAKAAAAA6AJAAEAAAAKAAAAAAAAAAYAAwEDAAEAAAAGAAAAGgEJAAEAAABIAAAAGwEJAAEAAABIAAAAKAEJAAEAAAACAAAAAQIEAAEAAAAqAQAAAgIEAAEAAAAJAgAAAAAAAP/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwACAQEBAQECAQEBAgICAgIEAwICAgIFBAQDBAYFBgYGBQYGBgcJCAYHCQcGBggLCAkKCgoKCgYICwwLCgwJCgoK/9sAQwECAgICAgIFAwMFCgcGBwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK/8AAEQgACgAKAwEiAAIRAQMRAf/EABcAAAMBAAAAAAAAAAAAAAAAAAAICQr/xAAeEAACAgMBAQEBAAAAAAAAAAADBAIFAQYHCAkKAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwBreIO/LnqPAucdY9vi84XnaOgcv0baNhD2DkK9zum3WdgqCwsyV42SYbuxNhZhX1q9YAgEWVpJgGxhbFYvKH27+hb7F+WvaHXvMfFfaVgjpvOeoX+r6klbalS2zS9ZX2J1FRmefSM24WIRDxJhkpTlljMyEnOUpZP0Le3faHlr7F9p4r5j9d9Q5zpqNhUvpaloe/2NRWLtP0qD7zEFVDDFArDjTLRp4jiRTsFLPMpklLOp3U9T1XQtVrNF0XWa+lpKWvChTU1SlBZVBUMMDEuEQ8YgIUIRjCMI4xGMY4xjGMY/g//ZAP/bAEMAAgEBAQEBAgEBAQICAgICBAMCAgICBQQEAwQGBQYGBgUGBgYHCQgGBwkHBgYICwgJCgoKCgoGCAsMCwoMCQoKCv/bAEMBAgICAgICBQMDBQoHBgcKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCv/AABEIAAoACgMBIgACEQEDEQH/xAAXAAADAQAAAAAAAAAAAAAAAAAACAkK/8QAHhAAAgIDAQEBAQAAAAAAAAAAAwQCBQEGBwgJCgD/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8Aa3iDvy56jwLnHWPb4vOF52joHL9G2jYQ9g5Cvc7pt1nYKgsLMleNkmG7sTYWYV9avWAIBFlaSYBsYWxWLyh9u/oW+xflr2h17zHxX2lYI6bznqF/q+pJW2pUts0vWV9idRUZnn0jNuFiEQ8SYZKU5ZYzMhJzlKWT9C3t32h5a+xfaeK+Y/XfUOc6ajYVL6WpaHv9jUVi7T9Kg+8xBVQwxQKw40y0aeI4kU7BSzzKZJSzqd1PU9V0LVazRdF1mvpaSlrwoU1NUpQWVQVDDAxLhEPGICFCEYwjCOMRjGOMYxjGP4P/2Q==">
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
2+
# date: 2019.09.03
3+
#
4+
5+
from flask import Flask, Response, render_template, send_file
6+
import time
7+
8+
9+
app = Flask(__name__)
10+
11+
12+
@app.route("/")
13+
def index():
14+
return "Hello World 3"
15+
16+
def get_image():
17+
while True:
18+
yield(b'--frame\r\n'
19+
b'Content-Type: image/jpeg\r\n'
20+
b'\r\n'+ img + b'\r\n')
21+
time.sleep(0.01) # my Firefox needs some time to display image / Chrome displays image without it
22+
23+
24+
def get_image_with_size():
25+
length = str(len(img)).encode() # convert to bytes
26+
while True:
27+
yield(b'--frame\r\n'
28+
b'Content-Type: image/jpeg\r\n'
29+
b'Content-Length: ' + length + b'\r\n'
30+
b'\r\n'+ img + b'\r\n')
31+
time.sleep(0.01) # my Firefox needs some time to display image / Chrome displays image without it
32+
33+
34+
@app.route("/stream")
35+
def stream():
36+
return Response(get_image_with_size(), mimetype="multipart/x-mixed-replace; boundary=frame")
37+
38+
39+
@app.route("/image")
40+
def image():
41+
return send_file('test.jpg')
42+
43+
44+
if(__name__ == "__main__"):
45+
img = open('test.jpg', 'rb').read()
46+
app.run(debug = True)

matplotlib/example-3d/main-2d.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
# date: 2019.08.26
3+
# https://stackoverflow.com/questions/57661001/how-can-i-plot-a-graph-like-this-one-in-python
4+
# https://jakevdp.github.io/PythonDataScienceHandbook/04.12-three-dimensional-plotting.html
5+
6+
import matplotlib.pyplot as plt
7+
import numpy as np
8+
9+
def u_0(x):
10+
a = 1.0/np.cosh(2.0*(x+8.0))
11+
b = 1.0/np.cosh((x+1.0))
12+
return 8.0*a*a + 2.0*b*b
13+
14+
# spatial grid
15+
N = 100
16+
x = np.linspace(-10, 10, N)
17+
18+
# time
19+
Nt = 100
20+
tlist = np.linspace(0.0, 2.0, Nt)
21+
22+
#velocity
23+
c = 5.0
24+
count = 0
25+
26+
for t in tlist:
27+
u = u_0(x-c*t)
28+
u += count # offset
29+
plt.plot(x, u)
30+
count += 1
31+
32+
plt.savefig("result_2D.png")
33+
plt.show()
34+

matplotlib/example-3d/main-3d.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
2+
# date: 2019.08.26
3+
# https://stackoverflow.com/questions/57661001/how-can-i-plot-a-graph-like-this-one-in-python
4+
# https://jakevdp.github.io/PythonDataScienceHandbook/04.12-three-dimensional-plotting.html
5+
6+
import matplotlib.pyplot as plt
7+
from mpl_toolkits.mplot3d import Axes3D # need for `projection=`
8+
import numpy as np
9+
10+
def u_0(x):
11+
a = 1.0/np.cosh(2.0*(x+8.0))
12+
b = 1.0/np.cosh((x+1.0))
13+
return 8.0*a*a + 2.0*b*b
14+
15+
#velocity
16+
c = 5.0
17+
18+
#spatial grid
19+
N = 30
20+
x = np.linspace(-10, 10, N)
21+
t = np.linspace(0.0, 2.0, N)
22+
23+
X, T = np.meshgrid(x, t)
24+
Y = u_0(X-c*T)
25+
26+
fig = plt.figure()
27+
ax = fig.add_subplot(111, projection='3d')
28+
29+
ax.plot_wireframe(X, T, Y)
30+
31+
plt.savefig('result_3D.png')
32+
plt.show()
33+

matplotlib/example-3d/result_2D.png

162 KB
Loading

matplotlib/example-3d/result_3D.png

136 KB
Loading
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
Result:
3+
4+
![#1](output.png?raw=true)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
# date: 2019.09.04
3+
# https://stackoverflow.com/questions/57791698/how-to-save-an-image-from-a-custom-coco-dataset-with-its-annotations-overlaid-on/57792318#57792318
4+
5+
import skimage.io as io
6+
import matplotlib.pyplot as plt
7+
8+
image = io.imread("https://homepages.cae.wisc.edu/~ece533/images/lena.png")
9+
10+
plt.imshow(image)
11+
plt.axis('off')
12+
plt.annotate("Lena", (10, 20))
13+
plt.savefig("output.png", bbox_inches='tight', pad_inches=0)
14+
294 KB
Loading

os/user_id/main.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
# date: 2019.08.26
3+
# To test cron settings
4+
# * * * * * /usr/bin/python /home/user/script.py > /tmp/output.log
5+
6+
import os
7+
import sys
8+
import datetime
9+
10+
print('Date:', datetime.datetime.now().strftime('%Y.%m.%d'))
11+
print('Time:', datetime.datetime.now().strftime('%H:%M:%S'))
12+
print('Current Working Directory:', os.getcwd())
13+
print('User ID:', os.getuid())
14+
15+
str_user_id = str(os.getuid())
16+
17+
with open('/etc/passwd') as fp:
18+
for line in fp:
19+
line = line.rstrip('\n')
20+
items = line.split(':')
21+
if items[2] == str_user_id:
22+
print(' passwd:', line)
23+
print(' name:', items[0])
24+
print(' home:', items[5])
25+
print(' shell:', items[6])
26+
break
27+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env python
2+
3+
# date: 2019.09.02
4+
# https://stackoverflow.com/questions/57755712/how-do-i-resolve-contract-object-has-no-attribute-filter-in-pil-imageenhanc/57756236#57756236
5+
6+
from PIL import Image
7+
from PIL import ImageEnhance
8+
9+
image = Image.open("old_image.jpg")
10+
11+
enhancer = ImageEnhance.Contrast(image)
12+
new_image = enhancer.enhance(1.5)
13+
14+
new_image.save("new_image.jpg")

pillow/work-with-skimage/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
Result:
3+
4+
![#1](output.png?raw=true)

pillow/work-with-skimage/main.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2+
# date: 2019.09.04
3+
# https://stackoverflow.com/questions/57791698/how-to-save-an-image-from-a-custom-coco-dataset-with-its-annotations-overlaid-on/57792318#57792318
4+
5+
import skimage.io as io
6+
from PIL import Image, ImageDraw, ImageFont
7+
8+
image = io.imread("https://homepages.cae.wisc.edu/~ece533/images/lena.png")
9+
10+
img = Image.fromarray(image)
11+
draw = ImageDraw.Draw(img)
12+
draw.text((10,10), "Lena", font=ImageFont.truetype("arial", 20), fill=(0,0,0))
13+
img.save('test.png')1

pillow/work-with-skimage/output.png

470 KB
Loading

0 commit comments

Comments
 (0)