Social Icons

Friday, January 7, 2022

Manipulating images with QPixmap PyQt5 Python

1 - About the QPixmap PyQt5 class

A QPixmap is one of the widgets used to manage and manipulate images. It is optimized to display images on the screen. In our sample code, we'll use the QPixmap to display an image on the window. A QPixmap object can also be loaded into another widget, typically a label or button. The Qt API has another similar class QImage, which is optimized for I/O and other pixel manipulation. Pixmap, on the other hand, is optimized to display image on the screen.

2 - Insert an Image with the QPixmap PyQt5 class

To insert an image on a PyQt5 window you must: 

  1. import the QPixmap class from PyQt5.QtGui 
  2. create an instance object of the QPixmap class 
  3. associate the QPixmap instance object with a QLabel via the setPixmap() method:

Example

Now let's create a folder named 'images/' and put inside an image 'laptop.png' and then create a python file to visualize the image: show-image.py
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QPixmap 
import sys

app = QApplication(sys.argv)
root = QWidget()
root.setGeometry(100 , 100 , 500 , 300)

# create a QPixmap object
qpixmap = QPixmap("./images/laptop.png")
# creat a QLabel for image
lbl_img = QLabel(root)
lbl_img.setGeometry(50 , 20 , 300 , 300)
lbl_img.setPixmap(qpixmap)

root.show()
sys.exit(app.exec_())

3 - Resizing image

You can also resize the image via the resize method applied to the QLabel containing the image:

Example

# resizing the image
lbl_img.setScaledContents(True)
lbl_img.resize(75 , 75)

4 - QPixmap according to the object approach

Based on the syntax for creating and inserting an image via the QPixmap class, we can completely recode it in a single Python class:
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QPixmap 
import sys

class MyWindow(QWidget):
    def __init__(self, win):
        super().__init__()
        self.win = win

    def build(self):
        self.win.setWindowTitle("Example of QPixmap")
        self.win.setGeometry(100 , 100 , 500 , 300)

        # create a QPixmap object 
        self.img = QPixmap("./images/laptop.png")
        
        # create a QLabel for image
        self.lbl_img = QLabel(self.win)
        self.lbl_img.setScaledContents(True)
        
        # set the QPximap object to the label image
        self.lbl_img.setPixmap(self.img) 
        self.lbl_img.resize(75 , 75)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    root = QWidget()
    mywin = MyWindow(root)
    mywin.build()
    root.show()
    sys.exit(app.exec_())


Younes Derfoufi
my-courses.net

No comments:

Post a Comment

Learn Python For Beginners

Category Of Mobile Courses

Actualités (644) Adsense (1) Affiliation (1) Algebraic Topology (2) Algorithmic (1) all-news (30) Android (5) Android App (8) Android app without code (4) Android Apps (256) Android Development (4) Android download (2) Android OS (3) AngularJS (1) Automata theory and formal language (5) Bootstrap CSS (1) C programming (5) Category and Functor (8) CMS (3) Computer Glossary (18) Create Mobile App With Ionic Framework (2) CSS (2) CSS-Cascading-Style-Sheets (4) Developpement Java (13) Differential Geometry (1) Django-Python-Framework (15) dropshiping (26) Earn Money by Internet (4) Emplois (23) Framework php (2) Fraud (2) Github (2) HTML (7) IT News (3) Java For Beginners (10) Javascript (12) Kotlin Programming Language (8) Kotlin For Mobile Android (1) Linux Download (2) Marketing (5) Mobile (3) Mobile Courses (4) Mobile Marketing (4) MoneyGram (1) News (721) Node.js (5) Open Source (1) Photoshop (1) Protect Computer (1) Python (36) Python BeautifulSoup (1) Python For Data Science (2) Python PyQt (13) Python Reference (1) Python Source Code (3) Python-Books (6) Python-DVD-Training (1) Python-Exercises (297) Python-Framework (1) Python-IDE (1) Python-Kivy-Framework (2) Python-Modules (1) Python-pdf (2) Python-pyQt (1) python-temp (3) Référencement (2) Script PHP (2) Security (6) SEO (1) Snipping Tool: Faq (1) Social Networks (1) Source Code (4) Statistics With SPSS (2) Surveillance Software (1) Travail à domicile (6) Tutoriels php en vidéos (2) Tutoriels-MySql (6) tutoriels-php (19) Utilitaires (1) VPS (1) Web Hosting (1) Webcam (1) Webmarketing (11) Western Union (1) Windows 10 (1) Windows 7 (4) Windows 7 Faq (2) Windows 8 (1) Windows Accessories (1) Windows Download (8) Windows Drivers (1) Windows Fonts (1) Windows Power Shell (2) Windows Registry (2) Windows Security (18) Windows Software (2) Windows Spyware (2) Windows utilities (3) Windows Virus (2) Windows Vista (3) Windows Wireless (1) Windows xp (1) Wordpress (1)
 

Sample text

Sample Text

 
Blogger Templates