बस एक उन्नत संस्करण का हिस्सा है और कुछ दृश्यों को जोड़ने (क्योंकि दृश्यों अच्छा कर रहे हैं) के लिए:
setBlue(px,y*(2.0/h))
आपको बस इतना करना बताया जा रहा है क्या। ..
# 'divisor' : How much we expand the gradient (less is more)
# 'switch' : If True, start gradient from bottom to top
def fadeDownFromBlack(pic, divisor, switch=False):
w = getWidth(pic)
h = getHeight(pic)
startY = 0
endY = min(h-1, int(h/float(divisor)))
inc = 1
if (switch):
startY = h-1
endY = max(0, h-1 - int(h/float(divisor)))
inc = -1
color_ratio = float(divisor)/h
for y in range(startY, endY, inc):
for x in range(0,w):
px = getPixel(pic, x, y)
setRed(px, abs(startY - y)*(color_ratio)*getRed(px))
setGreen(px, abs(startY - y)*(color_ratio)*getGreen(px))
setBlue(px, abs(startY - y)*(color_ratio)*getBlue(px))
file = pickAFile()
picture = makePicture(file)
# The following commented line answers the question
#fadeDownFromBlack(picture, 2)
fadeDownFromBlack(picture, 0.7, True)
writePictureTo(picture, "/home/mad-king.png")
show(picture)
आउटपुट (चित्रकारी कॉर्नेलियू बाबा द्वारा - पागल राजा):
............
............. .........
............
स्रोत
2013-06-29 09:53:00
मुझे लगता है कि आप पीआईएल का उपयोग कर रहे हैं? (बस जांच रहा है।) – MatrixFrog
मुझे विश्वास नहीं है, नहीं। जब तक यह ज्योथन 4.3 के साथ आता है। – roger34
पेपर से: एक पिक्सेल को अंधेरे करने के लिए आप एक उचित अंश से लाल, हरे और नीले स्तर को गुणा करें। विशेष रूप से, यदि y तस्वीर के शीर्ष भाग में है, तो पंक्ति वाई में सभी पिक्सल में उनके आरजीबी स्तर y * (2.0/h) से गुणा हो जाते हैं, जहां एच तस्वीर की ऊंचाई है। तस्वीर के निचले हिस्से में पिक्सेल बदल नहीं गए हैं। मुझे लगता है कि मुझे setBlue आदि का उपयोग करने की आवश्यकता नहीं है? क्या मैं वापसी का उपयोग करूंगा? – roger34