-
Notifications
You must be signed in to change notification settings - Fork 395
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
issue rendering svg using flamingo in ios side #3750
Comments
tested on iphone 13 ios 16.6.1 |
remenber that flamingo lib use GeneralPath class |
please check the private email with the source code |
please anyone can help me? this issue painting circle in ios side it' very important to me.. |
The general path fix has been in production for a while. I doubt that is due to this. You problem is in the SVG file that has multiple separate arc statements instead of one arc. That's both inefficient and can cause artifacts due to rounding issues. Our renderer can't provide the same level of smoothing as a desktop graphics app. |
The test was created in real iOS side iphone 13 iOS 16.6.1 not in desktop environment. How can you explain me that your method fillArc() in your Gráfic Class work perfectly but when I use GeneralPath() generated by the flamingo transcoder this circle is very perceptible not perfect circle? |
The API you used was |
I use this because your flamingo transcoder created automatically that way when I convert svg file to java class. If this create a problem why just fail in iOS side?. You must to update the flamingo transcoder lib to avoid this way. |
Remenber that the readme in flamingo project said in the bold text: Tips and tricks to get a working Java code from a simple SVG image: 2a. remove all transformations. Export your vectorial drawing to SVG in the simplest format, that means without incorporated rasters, without incorporated fonts (export text as curves), without gradients or translucents (full opaque or full transparent colors are fine). If you can choose the SVG version, SVG 1.0 is fine. Load your SVG in Method Draw http://editor.method.ac/ (File > Open Image). (Method Draw is a vector editor for the web, it is open source and you can find it on Github: https://github.com/duopixel/Method-Draw) Ensure that the SVG has only one layer (you can use the XML editor of Inkscape) I did exactly this. All my svg files are created in pure path before pass to the flamingo lib to convert to java class. this curve is generated by your flamingo code. That is because your recomendation it'use pure path. |
Please provide a definitive solution if possible because our client detect this issue in real ios devices and don't like that. I just use your method fillArc() to check is problem is solved and efectively it solve but it's very dificult to paint just circles but when the circle is inside of others shapes is very dificult to paint with fillArc().
|
Flamingo is very simple. It takes the SVG commands and translates them to Codename One paths. So there's a path in the SVG that's not a circle. It's 4 You have two options:
Notice that when I say arc I mean: The graphics program will render the 4 separate curves correctly due to better subpixel anti-aliasing. This isn't something we can accomplish in a performant way across platforms. |
If I update from pro to Enterprise account the problem will have some solutions? It's important to understand that the developers that use codenameone some times wait a better response in dificult cases. Remember that if in ios side you can't provide a correct render in circles, circular fonts, etc, your framework have some disadvantages. The future is use SVG images, not use every diferent images by densities. I don't know why sincerily you just implement the same way of fillArc() in the flamingo transcoder lib to avoid to developers that use your framework to edit next the SVG file is converted in java class. That's unproductive to owrs clients, because we lost must time. If I had time to modify the flamingo lib source code I would do. The reason because we decide to paid your framework is sincerilly because your framework offer easy way to compile finals app to any actual platforms in little time. But you must continue growing every time that the developers found any problems and take our time to documentate in your Git page. Please think some times in the developers side that must to deliver a final product that depend of your support. |
how can I check please witch version have your actual Build server code in the section code of here? Why your aren't created a tag release to version 7.0.123 yet? |
My answer would be the same if you were an enterprise customer married to my sister. The solution is to use an arc(). You can't invoke 4 separate APIs that draw a quarter arc and expect them to fit 100%. Again, Flamingo didn't do it. Your SVG file did this... |
your flamingo lib doesn't reconize tags in your flamingo project is recommended use Remenber that the readme in flamingo project said in the bold text: Tips and tricks to get a working Java code from a simple SVG image: 2a. remove all transformations. that is what I did all times that I use Svg. Then if your flamingo lib doesn't reconize circle and other shape what do you sugest that I do? |
Could you provide a SVG file that work correctly with your flamingo? |
We didn't write flamingo. We just ported it. It seems to be generated by this code here: https://github.com/codenameone/flamingo-svg-transcoder/blob/master/core/src/main/java/org/pushingpixels/flamingo/api/svg/transcoders/EllipseTranscoder.java#L35 I'm guessing that is behavior from Batik or some other weird thing. Regardless, I don't understand why you don't just fix the generated code to use a single arc() call? We never promised 100% fidelity in SVG translation. |
Please check wrong rendering in ios side painting perfect circle.
this committ is the cause ?b36b68d
The text was updated successfully, but these errors were encountered: