-
-
Save eiszfuchs/b3887853a149613935d6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from __future__ import print_function | |
from os import makedirs, rename, path | |
from glob import glob | |
from lxml import etree | |
import subprocess | |
sizes = { | |
"mdpi": 1.0, | |
"hdpi": 1.5, | |
"xhdpi": 2.0, | |
"xxhdpi": 3.0, | |
} | |
inkscape_executable = "inkscape" | |
imagemagick_executable = "convert" | |
inkscape_osx = "/Applications/Inkscape.app/Contents/Resources/bin/inkscape" | |
if path.exists(inkscape_osx): | |
inkscape_executable = inkscape_osx | |
def ensure_output_folder(filename): | |
if not path.exists(filename): | |
makedirs(filename) | |
target_folder = path.join("..", "Conversations", "src", "main", "res") | |
namespace_def = { | |
"sodipodi": "http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd", | |
} | |
for svg_filename in glob("*.svg"): | |
with open(svg_filename, "r") as svg_file: | |
svg_data = svg_file.read() | |
root = etree.fromstring(svg_data) | |
base_width = int(root.get("width")) | |
base_height = int(root.get("height")) | |
guides = root.findall(".//sodipodi:guide", namespaces=namespace_def) | |
for size, scale in sizes.items(): | |
width = base_width * scale | |
height = base_height * scale | |
output_folder = path.join(target_folder, "drawable-%s" % size) | |
png_filename = svg_filename.replace(".svg", ".9.png") | |
output_filename = path.join(output_folder, png_filename) | |
ensure_output_folder(output_folder) | |
subprocess.call([ | |
inkscape_executable, | |
"-z", "-C", "-d", str(90 * scale), | |
"-f", svg_filename, | |
"-e", output_filename, | |
]) | |
subprocess.call([ | |
imagemagick_executable, | |
output_filename, | |
"-matte", "-bordercolor", "none", "-border", "1", | |
output_filename, | |
]) | |
top = [] | |
right = [] | |
bottom = [] | |
left = [] | |
for guide in guides: | |
orientation = guide.get("orientation") | |
x, y = guide.get("position").split(",") | |
x, y = int(x), int(y) | |
if orientation == "1,0" and y == base_height: | |
top.append(x * scale) | |
if orientation == "0,1" and x == base_width: | |
right.append((base_height - y) * scale) | |
if orientation == "1,0" and y == 0: | |
bottom.append(x * scale) | |
if orientation == "0,1" and x == 0: | |
left.append((base_height - y) * scale) | |
top_line = ["-draw", 'rectangle %d,%d %d,%d' % (min(top) + 1, 0, max(top), 0)] | |
right_line = ["-draw", 'rectangle %d,%d %d,%d' % (width + 1, min(right) + 1, width + 1, max(right))] | |
bottom_line = ["-draw", 'rectangle %d,%d %d,%d' % (min(bottom) + 1, height + 1, max(bottom), height + 1)] | |
left_line = ["-draw", 'rectangle %d,%d %d,%d' % (0, min(left) + 1, 0, max(left))] | |
subprocess.call([ | |
imagemagick_executable, | |
output_filename, | |
"-fill", "black", "-stroke", "none", | |
] + top_line + right_line + bottom_line + left_line + [ | |
output_filename, | |
]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
alias inkscape="/Applications/Inkscape.app/Contents/Resources/bin/inkscape" | |
# mdpi 1.0 90 | |
# hdpi 1.5 135 | |
# xhdpi 2.0 180 | |
# xxhdpi 3.0 270 | |
mkdir drawable-mdpi/ | |
inkscape -z -C -d 90 -f message_bubble_received.svg \ | |
-e drawable-mdpi/message_bubble_received.png | |
convert drawable-mdpi/message_bubble_received.png \ | |
-matte -bordercolor none -border 1 \ | |
drawable-mdpi/message_bubble_received.png | |
convert drawable-mdpi/message_bubble_received.png \ | |
-fill black -stroke none \ | |
-draw "rectangle 21,0 24,0" \ | |
-draw "rectangle 37,9 37,20" \ | |
-draw "rectangle 21,29 24,29" \ | |
-draw "rectangle 0,13 0,16" \ | |
drawable-mdpi/message_bubble_received.png | |
cp drawable-mdpi/message_bubble_received.png \ | |
../Conversations/src/main/res/drawable-mdpi/message_bubble_received.9.png | |
inkscape -z -C -d 90 -f message_bubble_sent.svg \ | |
-e drawable-mdpi/message_bubble_sent.png | |
convert drawable-mdpi/message_bubble_sent.png \ | |
-matte -bordercolor none -border 1 \ | |
drawable-mdpi/message_bubble_sent.png | |
convert drawable-mdpi/message_bubble_sent.png \ | |
-fill black -stroke none \ | |
-draw "rectangle 13,0 16,0" \ | |
-draw "rectangle 37,9 37,20" \ | |
-draw "rectangle 13,29 16,29" \ | |
-draw "rectangle 0,13 0,16" \ | |
drawable-mdpi/message_bubble_sent.png | |
cp drawable-mdpi/message_bubble_sent.png \ | |
../Conversations/src/main/res/drawable-mdpi/message_bubble_sent.9.png | |
mkdir drawable-hdpi/ | |
inkscape -z -C -d 135 -f message_bubble_received.svg \ | |
-e drawable-hdpi/message_bubble_received.png | |
convert drawable-hdpi/message_bubble_received.png \ | |
-matte -bordercolor none -border 1 \ | |
drawable-hdpi/message_bubble_received.png | |
convert drawable-hdpi/message_bubble_received.png \ | |
-fill black -stroke none \ | |
-draw "rectangle 31,0 36,0" \ | |
-draw "rectangle 55,13 55,30" \ | |
-draw "rectangle 31,43 36,43" \ | |
-draw "rectangle 0,19 0,24" \ | |
drawable-hdpi/message_bubble_received.png | |
cp drawable-hdpi/message_bubble_received.png \ | |
../Conversations/src/main/res/drawable-hdpi/message_bubble_received.9.png | |
inkscape -z -C -d 135 -f message_bubble_sent.svg \ | |
-e drawable-hdpi/message_bubble_sent.png | |
convert drawable-hdpi/message_bubble_sent.png \ | |
-matte -bordercolor none -border 1 \ | |
drawable-hdpi/message_bubble_sent.png | |
convert drawable-hdpi/message_bubble_sent.png \ | |
-fill black -stroke none \ | |
-draw "rectangle 19,0 24,0" \ | |
-draw "rectangle 55,13 55,30" \ | |
-draw "rectangle 19,43 24,43" \ | |
-draw "rectangle 0,19 0,24" \ | |
drawable-hdpi/message_bubble_sent.png | |
cp drawable-hdpi/message_bubble_sent.png \ | |
../Conversations/src/main/res/drawable-hdpi/message_bubble_sent.9.png | |
mkdir drawable-xhdpi/ | |
inkscape -z -C -d 180 -f message_bubble_received.svg \ | |
-e drawable-xhdpi/message_bubble_received.png | |
convert drawable-xhdpi/message_bubble_received.png \ | |
-matte -bordercolor none -border 1 \ | |
drawable-xhdpi/message_bubble_received.png | |
convert drawable-xhdpi/message_bubble_received.png \ | |
-fill black -stroke none \ | |
-draw "rectangle 41,0 48,0" \ | |
-draw "rectangle 73,17 73,40" \ | |
-draw "rectangle 41,57 48,57" \ | |
-draw "rectangle 0,25 0,32" \ | |
drawable-xhdpi/message_bubble_received.png | |
cp drawable-xhdpi/message_bubble_received.png \ | |
../Conversations/src/main/res/drawable-xhdpi/message_bubble_received.9.png | |
inkscape -z -C -d 180 -f message_bubble_sent.svg \ | |
-e drawable-xhdpi/message_bubble_sent.png | |
convert drawable-xhdpi/message_bubble_sent.png \ | |
-matte -bordercolor none -border 1 \ | |
drawable-xhdpi/message_bubble_sent.png | |
convert drawable-xhdpi/message_bubble_sent.png \ | |
-fill black -stroke none \ | |
-draw "rectangle 25,0 32,0" \ | |
-draw "rectangle 73,17 73,40" \ | |
-draw "rectangle 25,57 32,57" \ | |
-draw "rectangle 0,25 0,32" \ | |
drawable-xhdpi/message_bubble_sent.png | |
cp drawable-xhdpi/message_bubble_sent.png \ | |
../Conversations/src/main/res/drawable-xhdpi/message_bubble_sent.9.png | |
mkdir drawable-xxhdpi/ | |
inkscape -z -C -d 270 -f message_bubble_received.svg \ | |
-e drawable-xxhdpi/message_bubble_received.png | |
convert drawable-xxhdpi/message_bubble_received.png \ | |
-matte -bordercolor none -border 1 \ | |
drawable-xxhdpi/message_bubble_received.png | |
convert drawable-xxhdpi/message_bubble_received.png \ | |
-fill black -stroke none \ | |
-draw "rectangle 61,0 72,0" \ | |
-draw "rectangle 109,25 109,60" \ | |
-draw "rectangle 61,85 72,85" \ | |
-draw "rectangle 0,37 0,48" \ | |
drawable-xxhdpi/message_bubble_received.png | |
cp drawable-xxhdpi/message_bubble_received.png \ | |
../Conversations/src/main/res/drawable-xxhdpi/message_bubble_received.9.png | |
inkscape -z -C -d 270 -f message_bubble_sent.svg \ | |
-e drawable-xxhdpi/message_bubble_sent.png | |
convert drawable-xxhdpi/message_bubble_sent.png \ | |
-matte -bordercolor none -border 1 \ | |
drawable-xxhdpi/message_bubble_sent.png | |
convert drawable-xxhdpi/message_bubble_sent.png \ | |
-fill black -stroke none \ | |
-draw "rectangle 37,0 48,0" \ | |
-draw "rectangle 109,25 109,60" \ | |
-draw "rectangle 37,85 48,85" \ | |
-draw "rectangle 0,37 0,48" \ | |
drawable-xxhdpi/message_bubble_sent.png | |
cp drawable-xxhdpi/message_bubble_sent.png \ | |
../Conversations/src/main/res/drawable-xxhdpi/message_bubble_sent.9.png |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment