一、初識imageviewer
ImageViewer是一款基於Python開發的圖像查看軟體,它可以打開多種圖片格式,包括png、jpg、bmp等。除此之外,ImageViewer還具有基本的圖片編輯功能。
通過使用ImageViewer,我們可以輕鬆地瀏覽和查看圖片,並對圖片進行旋轉、縮放等基本編輯操作。
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication(sys.argv)
label = QLabel()
pixmap = QPixmap('image.jpg')
label.setPixmap(pixmap)
label.show()
sys.exit(app.exec_())
二、圖片縮放功能
ImageViewer提供了圖片縮放功能,可以將圖片放大或者縮小到指定的大小,輕鬆滿足多種需求。縮放操作可以通過滑鼠滾輪、快捷鍵等方式進行,非常方便。
以下是一個縮放實例,通過滑鼠滾輪控制縮放大小:
def wheelEvent(self, event):
delta = event.angleDelta().y()
if delta > 0:
# 放大操作
self.scaleImage(1.25)
else:
# 縮小操作
self.scaleImage(0.8)
def scaleImage(self, factor):
self.scale_factor *= factor
self.image_label.resize(self.scale_factor * self.image.width(),
self.scale_factor * self.image.height())
self.adjustScrollBar(self.scroll_area.horizontalScrollBar(), factor)
self.adjustScrollBar(self.scroll_area.verticalScrollBar(), factor)
def adjustScrollBar(self, scroll_bar, factor):
scroll_bar.setValue(int(factor * scroll_bar.value()
+ ((factor - 1) * scroll_bar.pageStep()/2)))
三、圖片旋轉功能
ImageViewer還提供了對圖片進行旋轉的功能,支持左右旋轉,逆時針旋轉等多種操作,非常方便。
以下是圖片旋轉的代碼實現:
self.rotate_count += 1
if self.rotate_count == 4:
self.rotate_count = 0
if self.rotate_count == 1:
self.image = self.image.transformed(QTransform().rotate(90))
elif self.rotate_count == 2:
self.image = self.image.transformed(QTransform().rotate(180))
elif self.rotate_count == 3:
self.image = self.image.transformed(QTransform().rotate(270))
else:
self.image = self.image.transformed(QTransform().rotate(0))
self.image_label.setPixmap(QPixmap.fromImage(self.image))
self.image_label.adjustSize()
四、圖片濾鏡功能
ImageViewer具有隻讀模式,可以設置圖像顯示的濾鏡。其中包括模糊、輪廓線、浮雕、邊緣增強等多種濾鏡,可以讓圖片呈現出不同的視覺效果。
以下是一段實現圖片模糊濾鏡功能的代碼:
class BlurFilter():
def filter(self, image):
blurred = image.filter(ImageFilter.BLUR)
return blurred
class ImageViewer(QWidget):
def __init__(self, parent=None):
super(ImageViewer, self).__init__(parent)
self.image = None
self.image_label = QLabel()
self.filters = {'blur': BlurFilter()}
def applyFilter(self, filter):
if self.image is not None:
filtered = self.filters[filter].filter(self.image)
self.image_label.setPixmap(QPixmap.fromImage(ImageQt(filtered)))
self.image_label.adjustSize()
五、圖片保存功能
ImageViewer提供了圖片保存功能,用戶可以將圖片保存到本地硬碟上的指定目錄。在保存圖片的同時,ImageViewer還會自動檢測圖片的格式,並進行相應的轉換工作。
以下是實現圖片保存功能的代碼:
def save(self):
file_path, _ = QFileDialog.getSaveFileName(self, "Save Image", "",
"PNG(*.png);; JPEG(*.jpg *.jpeg);; All Files(*.*) ")
if file_path == '':
# 未選擇保存路徑
return
# 獲取圖片保存後的路徑
extension = file_path.split('.')[-1]
# 根據圖片的類型進行相應的轉換
if extension.lower() == 'png':
self.image.save(file_path, 'png', quality=100)
elif extension.lower() in ('jpg', 'jpeg'):
self.image.save(file_path, 'jpeg', quality=100)
else:
self.image.save(file_path)
六、總結
通過本文的介紹,我們了解了ImageViewer作為一款開源的圖像查看軟體,擁有豐富的功能,包括基礎的圖片瀏覽、編輯功能,在此基礎上還提供了縮放、旋轉、濾鏡等高度自定義的功能,以及保存圖片到本地等實用的功能,方便用戶的日常使用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233770.html