Comments (5)
I believe color conversion should be done by editing the SVG input itself, then loading the edited string in memory as a SVG.
from lunasvg.
@Calinou Any thoughts?
I'm not sure if this should be part of the core API, but I guess it's not much code in the library so it's probably fine.
from lunasvg.
Hello ... please can you try to clarify your question? 🙏🙏🙏
from lunasvg.
Close as a duplicate of #48.
from lunasvg.
Color conversion can be easily done this way.
class MyCanvas : public CanvasBase
{
public:
MyCanvas(int width, int height, Dictionary replace_colors);
...
void setColor(const Color& color)
{
auto replace_color = color;
for (int i = 0; i < replace_colors.old_colors.size(); i++) {
change_lunasvg_paint_color(replace_color, replace_colors.old_colors[i], replace_colors.new_colors[i]);
}
CanvasBase::setColor(replace_color);
}
void setGradient(const LinearGradientValues& values, const Transform& matrix, SpreadMethod spread, const GradientStops& stops)
{
auto replace_color = replace_stop_colors(stops);
CanvasBase::setGradient(values, matrix, spread, replace_color);
}
void setGradient(const RadialGradientValues& values, const Transform& matrix, SpreadMethod spread, const GradientStops& stops)
{
auto replace_color = replace_stop_colors(stops);
CanvasBase::setGradient(values, matrix, spread, replace_color);
}
...
};
...
auto document = Document::loadFromFile("any.svg");
auto canvas = std::make_shared<MyCanvas>(width, height, replace_colors):
auto matrix = Matrix{document->width() / width, 0, 0, document->height() / height, 0, 0};
document->renderToCanvas(canvas, matrix);
...
@Calinou Any thoughts?
from lunasvg.
Related Issues (20)
- 'Tiger' renders with the wrong colours? HOT 4
- Memory leak? HOT 2
- Colour format/conversion clarification. HOT 1
- Unable to rotate image with rotate or scale HOT 3
- Performance issue when used from ImGui as a SVG font loader HOT 10
- Taking Pull requests? SVG2ICO example. HOT 7
- Black box instead of image HOT 2
- Optional C++ version of plutovg HOT 3
- Is there chance that c6cad06 checking is braking the library HOT 7
- stack-buffer-overflow has occurred when running program svgpng in function gray_split_cubic at plutovg-ft-raster.c
- Floating point exception has occurred when running program svgpng in function blend_transformed_tiled_argb at plutovg-blend.c
- SEGV has occurred when running program svgpng in function lunasvg::Bitmap::clear at lunasvg.cpp
- C wrapper functions
- Render svg element HOT 14
- Local transformations and high-level function capable of simplifying some tasks HOT 2
- Local transformation and internal SVG element access - Element Box attributes HOT 5
- Local transformation and internal SVG element access - Text object attributes
- Local transformation and internal SVG element access - Element translation HOT 2
- Vulnerability Discovery HOT 2
- Unexpected PNG conversion from SVG file format HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lunasvg.