On 21.07.2016 14:30, Joona Petrell wrote:
We use Jolla 1 as our base configuration, other devices are scaled from there.
>
z1.0 small 32x32, medium 64x64, large 96x96, app icon 86x86 z1.25 small 40x40, medium 80x80, large 120x120, app icon 108x108 z1.5 small 48x48 medium 96x96, large 144x144, app icon 128x128 z1.5-large small 48x48, medium 72x72, large 108x108, app icon 128x128 (tablet) z1.75 small 56x56, medium 112x112, large 168x168, app icon 150x150 z2.0 small 64x64, medium 128x128, large 192x192, app icon 172x172
Thanks. This was very helpful. I assume these z-values are the same as Theme.pixelRatio?
For anyone interested, below is what I ended up doing, at least for now. A Python script to generate PNGs from SVGs, e.g. position.svg to posit...@1.00.png, posit...@1.25.png, etc. and a JavaScript function for use in QML to load the closest match. My current need was just icons on a map, meaning I don't have to match Sailfish's standard sizes, I just wanted the icons to scale relative to the pixel ratio. Tested on Jolla 1 and tablet, seemed to work as expected.
#!/usr/bin/env python3 import glob, os, xml.dom.minidom for svg in glob.glob("*.svg"): doc = xml.dom.minidom.parse(svg) doc = doc.getElementsByTagName("svg")[0] width = int(doc.getAttribute("width")) height = int(doc.getAttribute("height")) assert width > 0 and height > 0 for ratio in [1.00, 1.25, 1.50, 1.75, 2.00]: png = "{}@{:.2f}.png".format(svg[:-4], ratio) os.system("inkscape -f {} -e {} -C -w {:.0f} -h {:.0f}" .format(svg, png, ratio*width, ratio*height)) function getIcon(name) { var ratios = [1.00, 1.25, 1.50, 1.75, 2.00]; var minIndex = -1, minDiff = 1000; for (var i = 0; i < ratios.length; i++) { var diff = Math.abs(Theme.pixelRatio - ratios[i]); minIndex = diff < minDiff ? i : minIndex; minDiff = Math.min(minDiff, diff); } var ratio = ratios[minIndex].toFixed(2); return "icons/%1@%2.png".arg(name).arg(ratio); } -- Osmo Salomaa <otsal...@iki.fi> _______________________________________________ SailfishOS.org Devel mailing list To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org