Skip to content

Commit e383b34

Browse files
committed
Basic gallery
1 parent 99a6297 commit e383b34

File tree

4 files changed

+125
-7
lines changed

4 files changed

+125
-7
lines changed

fourpassloop/README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
### Building
22

3-
$ pip install -r requiresments.txt
4-
$ python scripts/generate_image.py -i ./raw -o ./img
5-
$ npm install
6-
$ npm build
3+
$ pip install -r requiresments.txt
4+
$ python generate_image.py -i ./raw -o ./img
75

86

fourpassloop/generate_image.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import argparse
2+
from glob import glob
3+
from pathlib import Path
4+
import os
5+
from typing import Tuple
6+
7+
from PIL import Image
8+
9+
def process_file(
10+
filename: str,
11+
outdir: str,
12+
onlycode: bool,
13+
maxdim: int = 2048,
14+
thumbdim: int = 256
15+
) -> Tuple[str, str]:
16+
fn = os.path.basename(filename)
17+
fn_fullsize = os.path.join(outdir, fn)
18+
fn_thumb = os.path.join(outdir, f"thumb_{fn}")
19+
20+
if not onlycode:
21+
img = Image.open(filename)
22+
23+
fullsize = img.copy()
24+
fullsize.thumbnail((maxdim, maxdim))
25+
fullsize.save(fn_fullsize, quality=100)
26+
27+
thumbnail = img.copy()
28+
thumbnail.thumbnail((thumbdim, thumbdim))
29+
thumbnail.save(fn_thumb, quality=60)
30+
31+
return os.path.relpath(fn_fullsize), os.path.relpath(fn_thumb)
32+
33+
34+
def gen_img_code(full: str, thumb: str):
35+
# return f'<a href="{full}"><img src="{thumb}"></a>'
36+
# return f'<img src="{thumb}" data-highres="{full}" />'
37+
return f"{{ src: '{full}', srct: '{thumb}' }},"
38+
39+
40+
def process_files(indir: str, out: str, onlycode: bool):
41+
Path(out).mkdir(exist_ok=True)
42+
files = [process_file(fn, out, onlycode) for fn in glob(f"{indir}/*.jpg")]
43+
output = "\n".join([gen_img_code(full, thumb) for full, thumb in files])
44+
with open("./tmphtml", "w") as f:
45+
f.write(output)
46+
47+
48+
def main():
49+
parser = argparse.ArgumentParser()
50+
parser.add_argument("-i", "--indir", default="./raw")
51+
parser.add_argument("-o", "--outdir", default="./img")
52+
parser.add_argument("-c", "--onlycode", action="store_true")
53+
args = parser.parse_args()
54+
55+
process_files(args.indir, args.outdir, args.onlycode)
56+
57+
58+
if __name__ == "__main__":
59+
main()

fourpassloop/index.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<html>
22
<head>
3-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
43
<link href="https://cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.4/fotorama.css" rel="stylesheet">
4+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
55
<script src="https://cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.4/fotorama.js"></script>
66
</head>
7-
<body>
8-
<div class="fotorama" data-nav="thumbs" data-keyboard="true" data-autoplay="true">
7+
<body style="background: black; margin: 0">
8+
<div class="fotorama" data-allowfullscreen="true" data-fit="scaledown" data-nav="thumbs" data-keyboard="true" data-autoplay="true">
99
<a href="img/DSCF9215.jpg"><img src="img/thumb_DSCF9215.jpg"></a>
1010
<a href="img/DSCF9016.jpg"><img src="img/thumb_DSCF9016.jpg"></a>
1111
<a href="img/DSCF9189.jpg"><img src="img/thumb_DSCF9189.jpg"></a>
@@ -65,5 +65,8 @@
6565
<a href="img/DSCF9218.jpg"><img src="img/thumb_DSCF9218.jpg"></a>
6666
<a href="img/DSCF9224.jpg"><img src="img/thumb_DSCF9224.jpg"></a>
6767
</div>
68+
<script>
69+
$('.fotorama').on('fotorama:ready', (e, fotorama) => fotorama.requestFullScreen());
70+
</script>
6871
</body>
6972
</html>

fourpassloop/tmphtml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{ src: 'img/DSCF9114.jpg', srct: 'img/thumb_DSCF9114.jpg' },
2+
{ src: 'img/DSCF9016.jpg', srct: 'img/thumb_DSCF9016.jpg' },
3+
{ src: 'img/DSCF9215.jpg', srct: 'img/thumb_DSCF9215.jpg' },
4+
{ src: 'img/DSCF9183.jpg', srct: 'img/thumb_DSCF9183.jpg' },
5+
{ src: 'img/DSCF9072.jpg', srct: 'img/thumb_DSCF9072.jpg' },
6+
{ src: 'img/DSCF9106.jpg', srct: 'img/thumb_DSCF9106.jpg' },
7+
{ src: 'img/DSCF9208.jpg', srct: 'img/thumb_DSCF9208.jpg' },
8+
{ src: 'img/DSCF9240.jpg', srct: 'img/thumb_DSCF9240.jpg' },
9+
{ src: 'img/DSCF9100.jpg', srct: 'img/thumb_DSCF9100.jpg' },
10+
{ src: 'img/DSCF9111.jpg', srct: 'img/thumb_DSCF9111.jpg' },
11+
{ src: 'img/DSCF9063.jpg', srct: 'img/thumb_DSCF9063.jpg' },
12+
{ src: 'img/DSCF9060.jpg', srct: 'img/thumb_DSCF9060.jpg' },
13+
{ src: 'img/DSCF9029.jpg', srct: 'img/thumb_DSCF9029.jpg' },
14+
{ src: 'img/DSCF9235.jpg', srct: 'img/thumb_DSCF9235.jpg' },
15+
{ src: 'img/DSCF9218.jpg', srct: 'img/thumb_DSCF9218.jpg' },
16+
{ src: 'img/DSCF9070.jpg', srct: 'img/thumb_DSCF9070.jpg' },
17+
{ src: 'img/DSCF9004.jpg', srct: 'img/thumb_DSCF9004.jpg' },
18+
{ src: 'img/DSCF9084.jpg', srct: 'img/thumb_DSCF9084.jpg' },
19+
{ src: 'img/DSCF9206.jpg', srct: 'img/thumb_DSCF9206.jpg' },
20+
{ src: 'img/DSCF9190.jpg', srct: 'img/thumb_DSCF9190.jpg' },
21+
{ src: 'img/DSCF9145.jpg', srct: 'img/thumb_DSCF9145.jpg' },
22+
{ src: 'img/DSCF9055.jpg', srct: 'img/thumb_DSCF9055.jpg' },
23+
{ src: 'img/DSCF9090.jpg', srct: 'img/thumb_DSCF9090.jpg' },
24+
{ src: 'img/DSCF9212.jpg', srct: 'img/thumb_DSCF9212.jpg' },
25+
{ src: 'img/DSCF9065.jpg', srct: 'img/thumb_DSCF9065.jpg' },
26+
{ src: 'img/DSCF9082.jpg', srct: 'img/thumb_DSCF9082.jpg' },
27+
{ src: 'img/DSCF9021.jpg', srct: 'img/thumb_DSCF9021.jpg' },
28+
{ src: 'img/DSCF9042.jpg', srct: 'img/thumb_DSCF9042.jpg' },
29+
{ src: 'img/DSCF9036.jpg', srct: 'img/thumb_DSCF9036.jpg' },
30+
{ src: 'img/DSCF9142.jpg', srct: 'img/thumb_DSCF9142.jpg' },
31+
{ src: 'img/DSCF9035.jpg', srct: 'img/thumb_DSCF9035.jpg' },
32+
{ src: 'img/DSCF9109.jpg', srct: 'img/thumb_DSCF9109.jpg' },
33+
{ src: 'img/DSCF9091.jpg', srct: 'img/thumb_DSCF9091.jpg' },
34+
{ src: 'img/DSCF9189.jpg', srct: 'img/thumb_DSCF9189.jpg' },
35+
{ src: 'img/DSCF9051.jpg', srct: 'img/thumb_DSCF9051.jpg' },
36+
{ src: 'img/DSCF9062.jpg', srct: 'img/thumb_DSCF9062.jpg' },
37+
{ src: 'img/DSCF8991.jpg', srct: 'img/thumb_DSCF8991.jpg' },
38+
{ src: 'img/DSCF9239.jpg', srct: 'img/thumb_DSCF9239.jpg' },
39+
{ src: 'img/DSCF9013.jpg', srct: 'img/thumb_DSCF9013.jpg' },
40+
{ src: 'img/DSCF9225.jpg', srct: 'img/thumb_DSCF9225.jpg' },
41+
{ src: 'img/DSCF9216.jpg', srct: 'img/thumb_DSCF9216.jpg' },
42+
{ src: 'img/DSCF9178.jpg', srct: 'img/thumb_DSCF9178.jpg' },
43+
{ src: 'img/DSCF9110.jpg', srct: 'img/thumb_DSCF9110.jpg' },
44+
{ src: 'img/DSCF9088.jpg', srct: 'img/thumb_DSCF9088.jpg' },
45+
{ src: 'img/DSCF9219.jpg', srct: 'img/thumb_DSCF9219.jpg' },
46+
{ src: 'img/DSCF9224.jpg', srct: 'img/thumb_DSCF9224.jpg' },
47+
{ src: 'img/DSCF9123.jpg', srct: 'img/thumb_DSCF9123.jpg' },
48+
{ src: 'img/DSCF8978.jpg', srct: 'img/thumb_DSCF8978.jpg' },
49+
{ src: 'img/DSCF9148.jpg', srct: 'img/thumb_DSCF9148.jpg' },
50+
{ src: 'img/DSCF9153.jpg', srct: 'img/thumb_DSCF9153.jpg' },
51+
{ src: 'img/DSCF9050.jpg', srct: 'img/thumb_DSCF9050.jpg' },
52+
{ src: 'img/DSCF9221.jpg', srct: 'img/thumb_DSCF9221.jpg' },
53+
{ src: 'img/DSCF9193.jpg', srct: 'img/thumb_DSCF9193.jpg' },
54+
{ src: 'img/DSCF9010.jpg', srct: 'img/thumb_DSCF9010.jpg' },
55+
{ src: 'img/DSCF9048.jpg', srct: 'img/thumb_DSCF9048.jpg' },
56+
{ src: 'img/DSCF9158.jpg', srct: 'img/thumb_DSCF9158.jpg' },
57+
{ src: 'img/DSCF9022.jpg', srct: 'img/thumb_DSCF9022.jpg' },
58+
{ src: 'img/DSCF9137.jpg', srct: 'img/thumb_DSCF9137.jpg' },

0 commit comments

Comments
 (0)