Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transparent background in exported .png images #24

Closed
ProjectPhysX opened this issue Oct 25, 2022 · 1 comment
Closed

Transparent background in exported .png images #24

ProjectPhysX opened this issue Oct 25, 2022 · 1 comment
Labels
feature request requests for new features

Comments

@ProjectPhysX
Copy link
Owner

How to get a transparent background in exported .png images?

@ProjectPhysX
Copy link
Owner Author

As-is, .png export only supports the 3-channel .png format in favor of smaller file size. But you can easily change that:

  1. in src/defines.hpp, set GRAPHICS_BACKGROUND_COLOR to 0xFF000000
  2. in src/utilities.hpp starting at line 4133, replace the entire write_png(...) function with this code:
inline void write_png(const string& filename, const Image* image) {
	create_folder(filename);
	uchar* data = new uchar[4u*image->length()];
	for(uint i=0u; i<image->length(); i++) {
		const int color = image->color(i);
		data[4u*i   ] = (color>>16)&255;
		data[4u*i+1u] = (color>> 8)&255;
		data[4u*i+2u] =  color     &255;
		data[4u*i+3u] = 255-((color>>24)&255);
	}
	lodepng::encode(create_file_extension(filename, ".png"), data, image->width(), image->height(), LCT_RGBA);
	delete[] data;
}

@ProjectPhysX ProjectPhysX added the feature request requests for new features label Mar 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request requests for new features
Projects
None yet
Development

No branches or pull requests

1 participant