toolbox4minecraft / amidst

Advanced Minecraft Interface and Data/Structure Tracking
GNU General Public License v3.0
2.15k stars 240 forks source link

SVG export option feature request. #327

Open GeorgeWL opened 7 years ago

GeorgeWL commented 7 years ago

could we have SVG image export?

That way it scales near-infinitely up and down in size, thanks to the images being a set of mathematical vectors.

ghost commented 7 years ago

First, I doubt that this can be done with any efficiency at all. The data that Amidst uses to produce the biome map is by definition "pixelated" because each tiny colored square represents a chunk (16x16 meters). This can be seen by zooming in on a map and turning on Slime Chunks. That will show you how big individual chunks are in the map. Turning a biome map into a vector plot isn't going to gain anything and might actually blur the actual structure of the biomes. Currently Amidst isn't even 2 megabytes in size (plus the overhead of Java and the Minecraft.jar being used.
Trying to produce an .svg format file would be extremely time consuming and a serious memory hog, IMHO.

stefandollase commented 7 years ago

Thanks for creating the separate issue (like requested in #245).

The data that Amidst uses to produce the biome map is by definition "pixelated" because each tiny colored square represents a chunk (16x16 meters).

This is true, however the png screenshot probably produces multiple image pixels per chunk, depending on the zoom level at the time the screenshot was taken. It might be nice to have an svg export that draws each chunk as a colored square. That way, the screenshot can indeed be scaled to any size. However, an issue that remains is that world icons are png files, so these would still be blurry in the svg image.

Currently Amidst isn't even 2 megabytes in size (plus the overhead of Java and the Minecraft.jar being used. Trying to produce an .svg format file would be extremely time consuming and a serious memory hog, IMHO.

I don't think this would add much code to Amidst and thus it would not make the executable much bigger. Also, it would only consume memory when a screenshot is taken and I honestly don't see why it should take a considerable amount of memory.

However, I do agree that it takes time to implement such a feature. Also, it is certainly not a high priority feature. Thus, it will probably just sit in the issue tracker for quite some time until someone feels the need to implement it. Nevertheless, I think it is worth it to have a list of properly documented feature requests.

mosscap commented 7 years ago

If this feature will be realized it would be nice if the coordinates(x,y) of the SVG would match the coordinates(x,z) in the Minecraft world that would make editing (adding further details) much easier.

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="x y width height"> x,y can also be negative like viewBox="-256 -256 512 512" than the point(0,0) is in the center

For more Info see ViewBoxAttribute and Intro.

Besides:


...
-> this would make the exported image very **editable** and the file won't get too large
stefandollase commented 7 years ago

@mosscap Thanks for the heads up! I agree with everything you said :-)

GeorgeWL commented 7 years ago

See in a weird way, full SVG is more future proof.

When Screen sizes get even bigger, SVG doesn't care. And there's the option available through modules to have a SVG of any size to be converted and saved as a Image of the same size.