GithubHelp home page GithubHelp logo

Comments (5)

HinTak avatar HinTak commented on July 2, 2024

I think you generally get an image which is the same pixel size as the declared dimension of the surface. So one answer to your question is probably just drawing on a larger surface. One other possibility is the SamplingOptions class, which is a translation of the upstream SkSamplingOptions class. This is used as an argument to many image-related methods. In skia-python we only provides the default at the moment, but it won't surprise me that upstream has a resolution-doubling etc option. If you look at the upstream documentation and see if you can find what you need there, we can put it in the next (122) release. A 3rd possibility is to output as one of the vector formats (svg, ps, pdf etc) and rasterize externally with mupdf/batik/ghostscript. For that, you need to worry about pen width, etc.

from skia-python.

HinTak avatar HinTak commented on July 2, 2024

The SamplingOptions class seems to have a number of enums, kLinear and kNearest for interpolation. I don't know which might be relevant to you (or none), but if you are trying to draw a bitmap onto a surface that is not exactly the same pixel dimension as the bitmap, you might find changing from kLinear to KNearest or vice versa more suited to your needs.

from skia-python.

adelhpour avatar adelhpour commented on July 2, 2024

Thanks for your quick reply.
What I am actually looking for is that how I can use the following methods mentioned in the documentation:

image = surface.makeImageSnapshot()
image.save('output.png', skia.kPNG)

and get a figure saved with a higher quality than the one I currently get? Is there a way like increasing the dpi of the created image there?

from skia-python.

HinTak avatar HinTak commented on July 2, 2024

Well, I wrote everything in my initial reply already: easiest would be starting from a larger surface. 2nd way is to use image.resize(), which takes a SamplingOption argument for interpolation. If the current python interface to the upstream SkSamplingOption class is insufficient and you see things upstream we could add, we'll add it for next release. Upstream docs at api.skia.org or something similar.

from skia-python.

HinTak avatar HinTak commented on July 2, 2024

https://api.skia.org/structSkSamplingOptions.html

from skia-python.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.