X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fbackend%2FECMA48Terminal.java;h=75c4ce407e4b05e9bcade8af846da8b9bbb6f426;hb=04275552087576ff522598fa7664e01c6a660284;hp=9884835591adba9cfa57530cca3759ee8fb6404e;hpb=739ada621a9220c1764172118efe68d3e26db18a;p=nikiroo-utils.git diff --git a/src/jexer/backend/ECMA48Terminal.java b/src/jexer/backend/ECMA48Terminal.java index 9884835..75c4ce4 100644 --- a/src/jexer/backend/ECMA48Terminal.java +++ b/src/jexer/backend/ECMA48Terminal.java @@ -3083,6 +3083,10 @@ public class ECMA48Terminal extends LogicalScreen } image = palette.ditherImage(image); + // Collect the raster information + int rasterHeight = 0; + int rasterWidth = image.getWidth(); + // Emit the palette, but only for the colors actually used by these // cells. boolean [] usedColors = new boolean[sixelPaletteSize]; @@ -3159,6 +3163,9 @@ public class ECMA48Terminal extends LogicalScreen data += 32; break; } + if ((currentRow + j + 1) > rasterHeight) { + rasterHeight = currentRow + j + 1; + } } } assert (data >= 0); @@ -3198,6 +3205,9 @@ public class ECMA48Terminal extends LogicalScreen // Kill the very last "-", because it is unnecessary. sb.deleteCharAt(sb.length() - 1); + // Add the raster information + sb.insert(0, String.format("\"1;1;%d;%d", rasterWidth, rasterHeight)); + if (saveInCache) { // This row is OK to save into the cache. sixelCache.put(cells, sb.toString());