रैंडम इमेज जनरेटर


14

मैं यादृच्छिक डेटा उत्पन्न कर रहा हूं और इसका उपयोग करके PNG छवि में बदलने की कोशिश कर रहा हूं:

head -c 1MB < /dev/urandom | hexdump -e '16/1 "_x%02X"' | sed 's/_/\\/g; s/\\x  //g; s/.*/    "&"/' | tr -d "\"" | display -depth 8 -size 1000x1000+0 rgb:-

यह कमांड हमेशा कुछ RGB पिक्सेल के साथ एक ग्रे इमेज दिखाती है। मैं क्या गलत कर रहा हूं ?

मेरा अंतिम लक्ष्य यादृच्छिक डेटा के साथ कम से कम एक छवि उत्पन्न करना है।


परिभाषित करें "यादृच्छिक।" यादृच्छिक आरजीबी मूल्यों के एक गुच्छा का दृश्य औसत सब के बाद, ग्रे की ओर बढ़ेगा।
वाइल्डकार्ड

यही मैंने सोचा था, लेकिन मैं इस सिद्धांत की पुष्टि नहीं कर सका क्योंकि हर तस्वीर लगभग एक जैसी दिखती है।
pxoto

15 साल पहले मैंने बेसिक (चिपमंक बेसिक, विशिष्ट होने के लिए) में कुछ ऐसा ही किया था। मेरे पास एक छोटी सी ग्राफिक्स विंडो थी और यादृच्छिक स्थान के लिए यादृच्छिक रंग के एक पिक्सेल का उत्पादन करता रहा। परिणाम एक लगातार बदलती तस्वीर थी जो अभी भी अनिवार्य रूप से पूरे समय की तरह दिखती थी - जैसे पुराने जमाने के टीवी पर रंग स्थिर। यह वास्तव में ग्रे नहीं है, लेकिन रंग स्थिर है
वाइल्डकार्ड

मैं कुछ स्थिर उत्पन्न करने में कामयाब रहा हूं लेकिन चित्र अभी भी ग्रे हैं।
पॉक्सो

जवाबों:


17

सबसे पहले, आपको display RGB:-कच्ची बाइट्स खिलाने की ज़रूरत है , न कि एक एन्कोडेड हेक्स स्ट्रिंग जैसी कि आप उस hexdump | sed | trपाइपलाइन के साथ निर्माण कर रहे हैं ।

दूसरे, आप इसे पर्याप्त बाइट्स नहीं दे रहे हैं: आपको प्रति पिक्सेल 3 बाइट्स चाहिए, प्रत्येक रंग चैनल के लिए।

यह वही है जो आप चाहते हैं:

mx=320;my=256;head -c "$((3*mx*my))" /dev/urandom | display -depth 8 -size "${mx}x${my}" RGB:-

सीधे पीएनजी को बचाने के लिए, आप यह कर सकते हैं:

mx=320;my=256;head -c "$((3*mx*my))" /dev/urandom | convert -depth 8 -size "${mx}x${my}" RGB:- random.png

यहाँ एक सामान्य आउटपुट छवि है:

RGB इमेज / dev / urandom से उत्पन्न होती है


यदि आप एक एनीमेशन बनाना चाहते हैं, तो व्यक्तिगत फ़्रेम बनाने और सहेजने की कोई आवश्यकता नहीं है। आप ffmpeg / avconv, जैसे एक कच्ची बाइट स्ट्रीम को सीधे फीड कर सकते हैं

mx=320; my=256; nframes=100; dd if=/dev/urandom bs="$((mx*my*3))" count="$nframes" | avconv -r 25 -s "${mx}x${my}" -f rawvideo -pix_fmt rgb24 -i - random.mp4

मैं विश्वास नहीं कर सकता कि आप वास्तव में इसे हल कर चुके हैं, मैं यह जानने के लिए कमांड का अध्ययन करूंगा कि यह कैसे काम करता है।
पॉक्सो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.