xenua
1 year ago
commit
cea2eee75d
4 changed files with 78 additions and 0 deletions
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
[submodule "reSnap"] |
||||
path = reSnap |
||||
url = https://github.com/cloudsftp/reSnap.git |
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python3 |
||||
import sys |
||||
|
||||
from PIL import Image, ImageOps |
||||
import numpy as np |
||||
|
||||
|
||||
if __name__ == '__main__': |
||||
assert len(sys.argv) in [2, 3], "Image path must be passed!" |
||||
print("argv is", sys.argv) |
||||
path = sys.argv[1] |
||||
invert = bool(int(sys.argv[2]) if len(sys.argv) > 2 else 0) |
||||
print("invert is", invert) |
||||
|
||||
# load image, discard alpha (if present) |
||||
img = Image.open(path).convert("RGB") |
||||
|
||||
# remove menu and indicators |
||||
data = np.array(img) |
||||
menu_is_open = (data[1816:64, 1816:64] == 0).all() |
||||
if menu_is_open: |
||||
# remove the entire menu, and the x in the top right corner |
||||
data[:, :120, :] = 255 |
||||
data[40:81, 1324:1364, :] = 255 |
||||
else: |
||||
# remove only the menu indicator circle |
||||
data[40:81, 40:81, :] = 255 |
||||
|
||||
# crop to the bounding box |
||||
img = Image.fromarray(data).convert("RGB") |
||||
bbox = ImageOps.invert(img).getbbox() |
||||
img = img.crop(bbox) |
||||
alpha_source = np.array(img.convert("RGBA")) |
||||
|
||||
if invert: |
||||
target_data = np.array(ImageOps.invert(img).convert("RGBA")) |
||||
else: |
||||
target_data = np.array(img.convert("RGBA")) |
||||
|
||||
# set alpha channel |
||||
|
||||
# copy inverted red channel to alpha channel, so that the background is transparent |
||||
# (could have also used blue or green here, doesn't matter) |
||||
target_data[..., -1] = 255 - alpha_source[..., 0] |
||||
|
||||
img = Image.fromarray(target_data) |
||||
|
||||
img.save(path) |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh |
||||
|
||||
has_param() { |
||||
local term="$1" |
||||
shift |
||||
for arg; do |
||||
if [[ $arg == "$term" ]]; then |
||||
echo 1 |
||||
return |
||||
fi |
||||
done |
||||
echo 0 |
||||
} |
||||
|
||||
invert=$(has_param "-i" "$@") |
||||
|
||||
echo $invert |
||||
|
||||
tempdir=$(mktemp -d) |
||||
tempfile="${tempdir}/image.png" |
||||
|
||||
resnap -s rm2 -p -o $tempfile -n |
||||
|
||||
crop_rm2_image.py $tempfile $invert |
||||
|
||||
xclip -selection clipboard -t image/png -i "$tempfile" |
Loading…
Reference in new issue