2009-11-14 8 views
7

मैंने इस प्रश्न को taking a picture of a webpage programmatically के बारे में पूछा, और मैंने डाउनलोड किया है और webkit2png काम कर रहा है (ब्लॉग्स और व्हाट्नॉट जैसे HTML पृष्ठों की तस्वीरें लेना)। बहुत अच्छा, मुझे यह दिखाने के लिए धन्यवाद!रूबी में प्रोग्राम के स्क्रीनशॉट प्रोग्रामेटिक रूप से लेते हैं?

अब मैं और अधिक करना शुरू करना चाहता हूं, जैसे लोड होने के बाद फ्लैश वेबसाइटों की तस्वीरें लेने में सक्षम होना, और मेरे डेस्कटॉप का।

क्या वेबकिट 2png के साथ फ्लैश वेबसाइटों की तस्वीरें लेना संभव है (आपको लगता है कि इसे लोड करने के लिए कुछ सेकंड इंतजार करना पड़ सकता है)?

लेकिन मुख्य सवाल यह है कि, मैं प्रोग्रामेटिक रूप से डेस्कटॉप की तस्वीरें कैसे ले सकता हूं? इससे मुझे क्या हो रहा है पर अधिक नियंत्रण प्राप्त करने की अनुमति होगी।

उत्तर

2

यह एक भयानक सवाल है!

कुछ साल पहले मुझे इसी तरह की परियोजना पर काम करना है। मुझे watir नामक लाइब्रेरी मिली, आप रूबी से सिस्टम ब्राउज़र को नियंत्रित करने के लिए उपयोग कर सकते हैं। जब मैंने चेक किया, तो यह वास्तव में लिनक्स पर्यावरण में विश्वसनीय नहीं था, लेकिन अभी यह बहुत ठोस लगता है।

मैं इस समाधान की कोशिश की कभी नहीं किया है तो मैं वास्तव में यदि आप कर सकते हैं खुशी होगी:

यहाँ लिंक की एक जोड़ी है यदि आप वाटर के साथ जाने का फैसला करते हैं तो यहां एक प्रतिक्रिया लिखें। सभी उदाहरण विंडोज सर्वर को लक्षित करते हैं, मुझे लिनक्स + फ़ायरफ़ॉक्स वातावरण का उपयोग करके एक वैध ट्यूटोरियल नहीं मिला।

3

आप रूट विंडो का स्क्रीनशॉट लेने के लिए xwd(1) उपयोग कर सकते हैं:

xwd -display :0 -root|xwdtopnm |pnmtopng > $1 
1

आप Watir WebDriver इस तरह उपयोग कर सकते हैं:

$ irb 
irb(main):001:0> require 'watir-webdriver' 
=> true 
irb(main):002:0> browser = Watir::Browser.new 
=> #<Watir::Browser:0x136da92fad77d562 url="about:blank" title=""> 
irb(main):003:0> browser.goto 'http://stackoverflow.com/questions/1733715/programmatically-take-screenshot-of-desktop-in-ruby' 
=> "http://stackoverflow.com/questions/1733715/programmatically-take-screenshot-of-desktop-in-ruby" 
irb(main):004:0> browser.screenshot.save 'screenshot.png' 
=> #<File:screenshot.png (closed)> 
irb(main):005:0> 

जो बल्कि अच्छी तरह से काम करने के लिए लगता है! मैंने अपने मैक पर इसका परीक्षण किया, लेकिन मुझे आश्चर्य होगा कि अगर यह लिनक्स पर भी अच्छा काम नहीं करता है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^