আমি কীভাবে একটি সাধারণ উইন্ডোতে একটি চিত্র ফাইল (পিএনজি) প্রদর্শন করব?


9

আরএফআইডি প্রকল্পের জন্য আমার প্রোটোটাইপটি দেখাতে হবে। আমি আরএফআইডি (প্যারাল্যাক্স ইউএসবি) কাজ করে এসেছি এবং নমুনা পাইথন স্ক্রিপ্টটি (আমার প্রথম) কার্ডটির আইডিটি ঠিক এমনভাবে প্রদর্শন করছে যেমন মনে করা হচ্ছে ... সমস্যাটি হ'ল এটি খুব জোরালো ডেমো / প্রোটোটাইপ নয়।

আমি যেটি করতে সক্ষম হতে চাই তা হ'ল আমার অ্যাপ্লিকেশনটি পাইতে চালু করা এবং কোনওরকম পিএনজি প্রদর্শন করা উচিত। নতুন উইন্ডো, পূর্ণ স্ক্রিন ইত্যাদি Then

পর্দার প্রদর্শনটি কেবল একটি চিত্র ফাইলের জন্য সবচেয়ে ব্যবহারিক, সহজতম, দ্রুততম উপায় কী হবে?

এখানে আমার কোড যা আরএফআইডি আউটপুট করে:

#! /usr/bin/python
import serial
import time

ser = serial.Serial('/dev/ttyUSB0', 2400, timeout=1) # replace '/dev/ttyUSB0' with your port

while True:
    response = ser.read(12)
    if response <> "":
        print "raw: " + str(response)
        print "hex: " + str(response[-8:])
        print "dec: " + str(int(response[-8:], 16))
    time.sleep(1)

ser.close()

আপনি কীভাবে আপনার অ্যাপ্লিকেশনটি চালাবেন? আপনি কি জিইউআই ব্যবহার করবেন বা কেবল কমান্ড লাইনের শেল থেকে?
হিফফান জন

আমি সম্ভবত উত্তর দেব, "আমি যেভাবেই পারি"। আমি সত্যিই যে কোনও সমাধানের জন্য উন্মুক্ত। আমি এলএক্সডিইডি ব্যবহার করছি তাই এটি অবশ্যই একটি বিকল্প। আমি কিছুক্ষণের মধ্যে প্রোগ্রাম করি নি, তাই এটি একটি মজাদার চ্যালেঞ্জ এবং আমি "না আমি পারছি না ..." দ্বারা এখনও জেদ পাই না তাই আমি যে কোনও এবং সমস্ত বিকল্পের প্রশংসা করি। আমি সত্যিই এক ধরণের "সুপার এক্সপ্লোরেশন মোডে" আছি এবং পাইথনের সমস্ত ধরণের সমাধান চেষ্টা করেই একটি বিস্ফোরণ ঘটছে।
জেফ

উত্তর:


6

যদি আপনি কোনও এক্স 11 ডেস্কটপ এনভায়রনমেন্ট যেমন এলএক্সডিইডি ব্যবহার করেন তবে আপনি এই নিবন্ধে প্রদর্শিত মৌলিক যুক্তি ব্যবহার করে এটি সম্পাদন করতে পারেন ।

প্রতিটি স্যুইচের মধ্যে 30 সেকেন্ড অপেক্ষা করে দুটি চিত্র প্রদর্শন করে আমি যা নিয়ে এসেছি তা এখানে। আপনি আপনার আরএফআইডি সেন্সর থেকে যা পড়েছেন তার উপর ভিত্তি করে চিত্রগুলি স্যুইচ করার জন্য আপনার যুক্তি সন্নিবেশ করতে সক্ষম হওয়া উচিত।

displayImages.py

#!/usr/bin/python

# use a Tkinter label as a panel/frame with a background image
# note that Tkinter only reads gif and ppm images
# use the Python Image Library (PIL) for other image formats
# free from [url]http://www.pythonware.com/products/pil/index.htm[/url]
# give Tkinter a namespace to avoid conflicts with PIL
# (they both have a class named Image)

import Tkinter as tk
from PIL import Image, ImageTk
from Tkinter.ttk import Frame, Button, Style
import time

class Example():
    def __init__(self):
        self.root = tk.Tk()
        self.root.title('My Pictures')

        # pick an image file you have .bmp  .jpg  .gif.  .png
        # load the file and covert it to a Tkinter image object
        imageFile = "babyAce.jpg"
        self.image1 = ImageTk.PhotoImage(Image.open(imageFile))
        self.image2 = ImageTk.PhotoImage(Image.open("baby-marti.jpg"))

        # get the image size
        w = self.image1.width()
        h = self.image1.height()

        # position coordinates of root 'upper left corner'
        x = 0
        y = 0

        # make the root window the size of the image
        self.root.geometry("%dx%d+%d+%d" % (w, h, x, y))

        # root has no image argument, so use a label as a panel
        self.panel1 = tk.Label(self.root, image=self.image1)
        self.display = self.image1
        self.panel1.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES)
        print "Display image1"
        self.root.after(30000, self.update_image)
        self.root.mainloop()

def update_image(self):
    if self.display == self.image1:
        self.panel1.configure(image=self.image2)
        print "Display image2"
        self.display = self.image2
    else:
        self.panel1.configure(image=self.image1)
        print "Display image1"
        self.display = self.image1
    self.root.after(30000, self.update_image)       # Set to call again in 30 seconds

def main():
    app = Example()

if __name__ == '__main__':
    main()

1000 এমএস অপেক্ষা করার জন্য আপনার এটি পরিবর্তন করতে সক্ষম হবে এবং কোন চিত্রটি প্রদর্শিত হবে তা নির্ধারণ করতে আপনার আরএফআইডি স্থিতি পরীক্ষা করতে হবে should


এটা সত্যিই দারুন. আমি পিআইএল ইনস্টল করেছি, পাইথন-টিকে ইতিমধ্যে সর্বশেষতম সংস্করণ, এবং আমি অনুলিপি করা ফাইলগুলি একই ডিরেক্টরিতে "উইন্ডো.পি" এর সাথে মেলে যাবতীয় ফাইলগুলির সাথে মেলে আমি নতুন ফাইলটির নামকরণ করেছি। অজগরটির নীচে চালানোর সময় আমি python window.pyত্রুটিটি পাই: ImportError: cannot import name ImageTk এটির কীভাবে সমস্যা সমাধান করা যায় তা দেখতে এখনই এটি খনন করতে হবে।
জেফ

আমি রেফারেন্স হিসাবে এই নিবন্ধটি ব্যবহার করে সঠিকভাবে টিনকিটার ব্যবহার করতে প্রোগ্রাম আপডেট করেছি ।
হিফফান জন

আমি পাইথন ব্যবহারকারী নই তাই আমি সম্পাদনা অনুমোদনের পাশ দিয়েছিলাম, তবে কেউ পরামর্শ দেওয়া from ttk importউচিত from Tkinter.ttk import- তবে এটি আমাকে ভুল হিসাবেও আঘাত করে, আমার ধারণা এটি হওয়া উচিত from tk import, যেহেতু asটিন্টারের পক্ষে এটিই ছিল।
স্বর্ণকেশ

7

ওয়ান্ডের একটি ডিসপ্লে মডিউল / পদ্ধতি রয়েছে

টার্মিনালে

$ python -m wand.display wandtests/assets/mona-lisa.jpg

পাইথন স্ক্রিপ্টে

import wand
with Image(blob=file_data) as image:
    wand.display.display(IMAGE)

আপনাকে ধন্যবাদ, এটি দুর্দান্ত ... আপনি এমনকি ফ্লাইতে চিত্র পরিবর্তন করতে পারেন, তাই সাধারণ অ্যানিমেশন পাশাপাশি, বা গেমস বা যা কিছু তৈরি করার জন্য দুর্দান্ত ...
ফ্ল্যাশ থান্ডার

2

আপনি যদি কমান্ড লাইন থেকে কোনও চিত্র প্রদর্শন করতে চান তবে আপনি "fbi" কনসোল প্রোগ্রামটি ব্যবহার করতে পারেন sudo apt-get install -y fbi

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.