git commit -am "Pruned git history"
All checks were successful
Rebuild signaller for deprived.dev to rebuild site / Rebuild Signaller (push) Successful in 21s
BIN
static/images/Zhen/Infomatik/1.G-App.png
Normal file
|
After Width: | Height: | Size: 146 KiB |
BIN
static/images/Zhen/Infomatik/FirstWebsite.png
Normal file
|
After Width: | Height: | Size: 121 KiB |
BIN
static/images/Zhen/Infomatik/Otakians.png
Normal file
|
After Width: | Height: | Size: 742 KiB |
BIN
static/images/Zhen/Infomatik/PressurePlate.png
Normal file
|
After Width: | Height: | Size: 282 KiB |
BIN
static/images/Zhen/Infomatik/QuestForGrass.png
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
static/images/Zhen/Infomatik/UncleRogers.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
static/images/Zhen/Infomatik/VisitCopenhagen.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
7890
static/images/Zhen/cv/ZRuler-F_Cu.svg
Normal file
|
After Width: | Height: | Size: 611 KiB |
55
static/images/cropper.py
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
import os
|
||||
import glob
|
||||
from PIL import Image
|
||||
from concurrent.futures import ProcessPoolExecutor, as_completed
|
||||
|
||||
# Directories
|
||||
input_dir = 'spinning_cat'
|
||||
output_dir = 'spinning_cat_cropped'
|
||||
|
||||
# Ensure output directory exists
|
||||
def ensure_output_dir():
|
||||
if not os.path.exists(output_dir):
|
||||
os.makedirs(output_dir)
|
||||
|
||||
# Process a single image: crop transparent borders and save
|
||||
def process_image(filepath):
|
||||
try:
|
||||
img = Image.open(filepath)
|
||||
if img.mode != 'RGBA':
|
||||
img = img.convert('RGBA')
|
||||
alpha = img.split()[-1]
|
||||
bbox = alpha.getbbox()
|
||||
cropped = img.crop(bbox) if bbox else img
|
||||
filename = os.path.basename(filepath)
|
||||
out_path = os.path.join(output_dir, filename)
|
||||
cropped.save(out_path)
|
||||
return out_path, None
|
||||
except Exception as e:
|
||||
return filepath, e
|
||||
|
||||
# Main execution: parallel processing
|
||||
|
||||
def main():
|
||||
ensure_output_dir()
|
||||
pattern = os.path.join(input_dir, 'untitled_*.png')
|
||||
files = sorted(glob.glob(pattern))
|
||||
if not files:
|
||||
print(f"No files found in '{input_dir}' with pattern 'untitled_*.png'.")
|
||||
return
|
||||
|
||||
with ProcessPoolExecutor() as executor:
|
||||
futures = {executor.submit(process_image, fp): fp for fp in files}
|
||||
for future in as_completed(futures):
|
||||
fp = futures[future]
|
||||
out_path, error = future.result()
|
||||
if error:
|
||||
print(f"Error processing {fp}: {error}")
|
||||
else:
|
||||
print(f"Cropped and saved: {out_path}")
|
||||
|
||||
print("Processing complete.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
BIN
static/images/icons/DeprivedLogo-NoBackground.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
static/images/icons/DeprivedLogo-SkullI-Background.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 10 KiB |
18
static/images/icons/discord.svg
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
fill="#000000"
|
||||
width="800.02313"
|
||||
height="609.78137"
|
||||
viewBox="0 0 24.000694 18.293441"
|
||||
role="img"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1" />
|
||||
<path
|
||||
d="m 20.317481,1.5163647 a 19.791,19.791 0 0 0 -4.885,-1.51500001 0.074,0.074 0 0 0 -0.079,0.037 c -0.21,0.375 -0.444,0.864 -0.608,1.25000001 a 18.27,18.27 0 0 0 -5.4870004,0 12.64,12.64 0 0 0 -0.617,-1.25000001 0.077,0.077 0 0 0 -0.079,-0.037 19.736,19.736 0 0 0 -4.885,1.51500001 0.07,0.07 0 0 0 -0.032,0.027 c -3.11199997,4.649 -3.96499997,9.1830003 -3.54599997,13.6600003 a 0.082,0.082 0 0 0 0.031,0.057 19.9,19.9 0 0 0 5.99299997,3.03 0.078,0.078 0 0 0 0.084,-0.028 14.09,14.09 0 0 0 1.226,-1.994 0.076,0.076 0 0 0 -0.041,-0.106 13.107,13.107 0 0 1 -1.872,-0.892 0.077,0.077 0 0 1 -0.008,-0.128 10.2,10.2 0 0 0 0.372,-0.292 0.074,0.074 0 0 1 0.077,-0.01 c 3.928,1.793 8.1800004,1.793 12.0620004,0 a 0.074,0.074 0 0 1 0.078,0.01 c 0.12,0.098 0.246,0.198 0.373,0.292 a 0.077,0.077 0 0 1 -0.006,0.127 12.299,12.299 0 0 1 -1.873,0.892 0.077,0.077 0 0 0 -0.041,0.107 c 0.36,0.698 0.772,1.362 1.225,1.993 a 0.076,0.076 0 0 0 0.084,0.028 19.839,19.839 0 0 0 6.002,-3.03 0.077,0.077 0 0 0 0.032,-0.054 c 0.5,-5.177 -0.838,-9.6740003 -3.549,-13.6600003 a 0.061,0.061 0 0 0 -0.031,-0.03 z M 8.0204806,12.476365 c -1.183,0 -2.157,-1.085 -2.157,-2.419 0,-1.3330003 0.956,-2.4190003 2.157,-2.4190003 1.21,0 2.1760004,1.096 2.1570004,2.4200003 0,1.333 -0.9560004,2.418 -2.1570004,2.418 z m 7.9750004,0 c -1.183,0 -2.157,-1.085 -2.157,-2.419 0,-1.3330003 0.955,-2.4190003 2.157,-2.4190003 1.21,0 2.176,1.096 2.157,2.4200003 0,1.333 -0.946,2.418 -2.157,2.418 z"
|
||||
id="path1"
|
||||
style="fill:#fdfdfd;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
BIN
static/images/icons/favicon.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
static/images/logo.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
static/images/memes/WhatDaDog.png
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
static/images/posts/folder-icons/cover.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
static/images/posts/git-bisecting/bisect_problem.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
static/images/posts/git-bisecting/thumbnail.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
static/images/spinning_cat/untitled_00001.png
Normal file
|
After Width: | Height: | Size: 396 KiB |