यहां सामान्य उपयोग केस एक उपयोगकर्ता है जो एक सफेद/रंग पृष्ठभूमि के साथ एक जेपीईजी लोगो अपलोड कर रहा है। यह सफेद पिक्सेल को पारदर्शी लोगों में बदलने के लिए (काफी) सरल है, लेकिन यह अलियासिंग कलाकृतियों को छोड़ देता है। एक आदर्श समाधान अनिवार्य रूप से एलियासिंग (पूर्व ज्ञात पृष्ठभूमि रंग दिया गया) "पूर्ववत" करेगा। कम से कम, समाधान को ImageMagick (http://imagemagick.org/Usage/scripts/bg_removal) के लिए bg_removal स्क्रिप्ट को हरा देना चाहिए।क्या एक उच्च गुणवत्ता वाले, प्रोग्रामेटिक समाधान हैं जो एक जेपीजी को एक अपारदर्शी पृष्ठभूमि के साथ एक पारदर्शी पृष्ठभूमि के साथ एक पीएनजी में बदलने के लिए हैं?
उत्तर
जैसा कि वादा किया गया है, यहां सामान्य सफेद -> अल्फा उपयोग केस के लिए एक समाधान समाधान है। यह मानक गिंप स्थापना (2.6.8) के साथ उबंटू 10.04.1 एलटीएस सर्वर पर चल रहा है।
from gimpfu import *
def run(input_filepath):
image = pdb.gimp_file_load(input_filepath, input_filepath)
image.disable_undo()
layer = image.active_layer
if not layer.is_rgb:
pdb.gimp_image_convert_rgb(image)
white = gimpcolor.RGB(1.0, 1.0, 1.0, 1.0)
bg_color = pdb.gimp_image_pick_color(image, layer, 0, 0, True, False, 0)
if bg_color == white:
pdb.plug_in_colortoalpha(image, layer, bg_color)
layer_copy = layer.copy()
image.add_layer(layer_copy)
image.merge_visible_layers(CLIP_TO_IMAGE)
pdb.file_png_save_defaults(image, image.active_layer, input_filepath, input_filepath)
run('%(input_filepath)s')
मैं input_filepath साथ डाला अजगर (Django के भीतर) से इस कोड निष्पादित उपप्रक्रिया मॉड्यूल (का उपयोग कर code_as_string एक स्ट्रिंग के रूप में ऊपर कोड है,:
gimp_args = (settings.PATH_TO_GIMP,
'-i',
'--batch-interpreter=python-fu-eval',
'-b', code_as_string,
'-b', 'from gimpfu import pdb; pdb.gimp_quit(True)')
environ = os.environ.copy()
environ['GIMP2_DIRECTORY'] = settings.PATH_TO_GIMP_DIR
p = subprocess.Popen(gimp_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=environ)
rc = p.wait()
if rc:
logging.error(p.stdout.read())
जीआईएमपी में "रंग टू अल्फा" एल्गोरिदम ऐसा लगता है कि यह एक बहुत अच्छा काम करता है। स्रोत जीपीएल है और here पाया जा सकता है। लोगो की तरह कुछ के साथ जीआईएमपी एल्गोरिदम क्या करता है इसका एक प्रदर्शन here है, और रंग-से-अल्फा के लिए जीआईएमपी मैनुअल पेज here है।
ऐसा लगता है कि यह प्रोग्राम करने के लिए सबसे सरल तरीका GIMP batch mode का उपयोग करना होगा।
प्रारंभिक परीक्षण प्रभावशाली दिखता है, बहुत कठिन परीक्षण मामले के लिए पहले और बाद में देखें: [सफेद बीजी के साथ जेपीजी के रूप में] (http://www.treatful.com/static/images/Google_Logo.jpg) -> [ पारदर्शी बीजी के साथ पीएनजी के रूप में] (http://www.treatful.com/static/images/Google_Logo.png) –
वाह, यह एक कठिन मामला है। पत्र अर्द्ध पारदर्शी बन गए हैं, लेकिन कम से कम एंटी-एलियासिंग अच्छा लग रहा है! – nobar
मैंने पत्र पारदर्शीता से छुटकारा पाने में मदद के लिए शेष छवि को "दोगुना" करने का एक अतिरिक्त कदम जोड़ा है, मैं पूर्ण जीआईएमपी पायथन स्क्रिप्ट + इसे जल्द ही निष्पादित करने के लिए कैसे पोस्ट करूंगा। मुझे सही दिशा में शुरू करने के लिए धन्यवाद। –
- 1. एक पारदर्शी पृष्ठभूमि के साथ गतिविधि
- 2. php के साथ एक पीएनजी छवि rotaing के बाद मैं एक पारदर्शी पृष्ठभूमि कैसे प्राप्त करूं?
- 3. एक पारदर्शी पृष्ठभूमि के साथ UIImage कैसे बनाएं
- 4. पारदर्शी पृष्ठभूमि के साथ एक छवि कैसे बनाएं
- 5. एक पीएनजी या जेपीजी
- 6. एक पारदर्शी से एक अपारदर्शी रंग
- 7. एसडीकार्ड पर संग्रहीत जेपीजी के साथ एक बिटमैप के रूप में एक जेपीजी फ़ाइल कैसे खोलें?
- 8. एक स्क्रीन पर एक पारदर्शी पीएनजी छवि को मारना
- 9. पारदर्शी पृष्ठभूमि के साथ PHP छविकॉपी
- 10. UIView को पारदर्शी पृष्ठभूमि के साथ पीएनजी फ़ाइल के रूप में सहेजें
- 11. PHP के साथ छवि पृष्ठभूमि हटाएं और पारदर्शी पीएनजी
- 12. एक उच्च गुणवत्ता वाली आईसीओ फ़ाइल प्रोग्रामेटिक रूप से
- 13. क्या आईई 6 के लिए एक जावास्क्रिप्ट पीएनजी फिक्स है जो सीएसएस पृष्ठभूमि स्थिति की अनुमति देता है?
- 14. आईफोन - UIView की पृष्ठभूमि रंग - पारदर्शिता के साथ एक पीएनजी का उपयोग कर?
- 15. एक CGContext पारदर्शी पृष्ठभूमि सेट करना
- 16. एक संख्या को एक हीटमैप HTML पृष्ठभूमि रंग में बदलने के लिए सरल PHP फ़ंक्शन?
- 17. क्या सीवी पृष्ठभूमि के रूप में उपयोग किए जाने वाले एसवीजी के लिए एक पॉलीफिल है?
- 18. पारदर्शी पृष्ठभूमि पीएनजी छवि पर एक सीएसएस छाया बनाने के लिए संभव है?
- 19. पारदर्शी पृष्ठभूमि के साथ ड्राइंग नियंत्रण
- 20. क्या आप अपने धागे के साथ पृष्ठभूमि थ्रेड पर एक शेडर को प्रीवार्म कर सकते हैं?
- 21. मतभेद = "पारदर्शी", "अपारदर्शी", या "खिड़की" एक वेबपेज
- 22. ओएसएक्स/कोको - पारदर्शी पृष्ठभूमि के साथ NSScrollView
- 23. पृष्ठभूमि के रूप में एक पीएनजी के साथ साजिश कैसे करें?
- 24. एक जेटीबल पारदर्शी की पृष्ठभूमि कैसे बनाएं?
- 25. संपीड़न के साथ पीएनजी को जेपीजी में परिवर्तित करने के लिए PHP का उपयोग करें?
- 26. javafx2.2 पारदर्शी पृष्ठभूमि के साथ स्क्रॉलबार बनाना
- 27. एक साथ दो पीएनजी छवियों को एक साथ pylab
- 28. PHP में एक जेपीजी पर पीएनजी रखें
- 29. पारदर्शी पृष्ठभूमि के साथ SurfaceView कैसे बनाएं?
- 30. PHP के साथ घूर्णन करने के बाद मैं एक पीएनजी पारदर्शी की पृष्ठभूमि क्यों नहीं बना सकता?
मुझे यकीन है कि आप क्या बात कर रहे हैं नहीं कर रहा हूँ "एलियासिंग कलाकृतियों" के रूप में। शायद आप प्रदर्शित करने के लिए एक छोटी छवि शामिल कर सकते हैं। – nobar
एलियासिंग वह प्रतिबिंबित कर रहा है इस तथ्य से आता है कि, विशेष रूप से किसी ऑब्जेक्ट की सीमा पर, पिक्सेल का रंग पृष्ठभूमि का मिश्रण होता है और ऑब्जेक्ट का होता है रंग –
@ नोबार: (एंटी-) अलियासिंग कलाकृतियों कुछ बहुत आम है। ओपी के सवाल और तथ्य था वह ImageMagick का उल्लेख करता है और तथ्य यह है कि आप नहीं जानते कि अलियासिंग कलाकृतियों क्या हैं, मुझे संदेह है कि आप उसकी मदद कर सकेंगे;) GIYF – SyntaxT3rr0r