#cairo आईआरसी चैनल सुझाव (धन्यवाद कंपनी!) Cairo_mask (उपयोग करने के लिए) cairo_paint के बजाय() ढाल आकर्षित करने के लिए। इसका परिणाम रैखिक प्रगति के बजाय वर्ग में होता है।
मैंने निम्नलिखित में निम्नलिखित किया था। भाषा के लिए खेद है, लेकिन कुछ प्रोटोटाइप करना आसान है। यह 1 के नक्शे: 1 सी एपीआई के लिए और नहीं अनुवाद करने के लिए मुश्किल होना चाहिए:
cairo = require("lgi").cairo
s = cairo.ImageSurface(cairo.Format.ARGB32, 200, 100)
c = cairo.Context(s)
c:set_source_rgb(1, 1, 1)
c:paint()
p = cairo.Pattern.create_radial(50, 50, 0, 50, 50, 20)
p:add_color_stop_rgba(0, 0, 0, 0, 1)
p:add_color_stop_rgba(1, 0, 0, 0, 0)
c:save()
c:rectangle(0, 0, 100, 100)
c:clip()
c.source = p
c:paint()
c:restore()
p = cairo.Pattern.create_radial(50, 50, 2, 50, 50, 25)
p:add_color_stop_rgba(0, 0, 0, 0, 1)
p:add_color_stop_rgba(1, 0, 0, 0, 0)
c:translate(100, 0)
c:save()
c:rectangle(0, 0, 100, 100)
c:clip()
c.source = p
c:mask(p)
c:restore()
s:write_to_png("test.png")
मेरे लिए
, दूसरे चक्र (एक है कि cairo_mask था() 'एक काले रंग की स्रोत के साथ d) एक बहुत अधिक लग रहा है आप क्या चाहते हैं की तरह:
आप 'मैं क्या चाहता हूँ' छवि कैसे बना दिया? –
मैं पिक्सेलमेटर में गया और एक ब्रश का उपयोग किया जिसमें 0% कठोरता सेट है। – Q2Ftb3k
कैरो परिणाम रैखिक रूप से इंटरपोलिंग का उपयोग कर रहा है। केंद्र से दूर प्रत्येक पिक्सेल ग्रे लाइटर के 2 रंग प्राप्त करता है। 'मैं क्या चाहता हूं'-परिणाम रैखिक नहीं है। यदि आप मुझे अनुमान लगाना चाहते हैं, तो पिक्सेलमेटर परिणाम गामा को सही करता है, जो मानव दृष्टि के आसपास काम करता है। –