本文整理汇总了Python中PySide.QtGui.QImage.size方法的典型用法代码示例。如果您正苦于以下问题:Python QImage.size方法的具体用法?Python QImage.size怎么用?Python QImage.size使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PySide.QtGui.QImage
的用法示例。
在下文中一共展示了QImage.size方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: drawIconWithShadow
# 需要导入模块: from PySide.QtGui import QImage [as 别名]
# 或者: from PySide.QtGui.QImage import size [as 别名]
def drawIconWithShadow(icon, rect, p, iconMode, radius, color, offset):
cache = QPixmap()
pixmapName = "icon {0} {1} {2}".format(icon.cacheKey(), iconMode, rect.height())
if not QPixmapCache.find(pixmapName, cache):
px = icon.pixmap(rect.size())
cache = QPixmap(px.size() + QSize(radius * 2, radius * 2))
cache.fill(Qt.transparent)
cachePainter = QPainter(cache)
if iconMode == QIcon.Disabled:
im = px.toImage().convertToFormat(QImage.Format_ARGB32)
for y in range(im.height()):
scanLine = im.scanLine(y)
for x in range(im.width()):
pixel = scanLine
intensity = qGray(pixel)
scanLine = qRgba(intensity, intensity, intensity, qAlpha(pixel))
scanLine += 1
px = QPixmap.fromImage(im)
# Draw shadow
tmp = QImage(px.size() + QSize(radius * 2, radius * 2 + 1), QImage.Format_ARGB32_Premultiplied)
tmp.fill(Qt.transparent)
tmpPainter = QPainter(tmp)
tmpPainter.setCompositionMode(QPainter.CompositionMode_Source)
tmpPainter.drawPixmap(QPoint(radius, radius), px)
tmpPainter.end()
# blur the alpha channel
blurred = QImage(tmp.size(), QImage.Format_ARGB32_Premultiplied)
blurred.fill(Qt.transparent)
blurPainter = QPainter(blurred)
# todo : blur image
blurPainter.end()
tmp = blurred
# blacken the image
tmpPainter.begin(tmp)
tmpPainter.setCompositionMode(QPainter.CompositionMode_SourceIn)
tmpPainter.fillRect(tmp.rect(), color)
tmpPainter.end()
tmpPainter.begin(tmp)
tmpPainter.setCompositionMode(QPainter.CompositionMode_SourceIn)
tmpPainter.fillRect(tmp.rect(), color)
tmpPainter.end()
# draw the blurred drop shadow...
cachePainter.drawImage(QRect(0, 0, cache.rect().width(), cache.rect().height()), tmp)
# Draw the actual pixmap...
cachePainter.drawPixmap(QPoint(radius, radius) + offset, px)
QPixmapCache.insert(pixmapName, cache)
targetRect = cache.rect()
targetRect.moveCenter(rect.center())
p.drawPixmap(targetRect.topLeft() - offset, cache)
示例2: QCoreApplication
# 需要导入模块: from PySide.QtGui import QImage [as 别名]
# 或者: from PySide.QtGui.QImage import size [as 别名]
from PySide.QtCore import QCoreApplication
from PySide.QtGui import QImage
if __name__ == "__main__":
app = QCoreApplication([])
img = QImage("lenna.png")
w, h = img.size().width(), img.size().width()
for p in ((x, y) for x in range(w) for y in range(h)):
colour = img.pixel(p[0], p[1]) # AARRGGBB
r = (colour >> 16) & 0xFF
g = (colour >> 8) & 0xFF
b = colour & 0xFF
avg = round((r + g + b) / 3) # Naïve method (no colour weighting)
new_colour = 0xff000000 + (avg << 16) + (avg << 8) + avg
img.setPixel(p[0], p[1], new_colour)
img.save("output.png")
示例3: CircuitItem
# 需要导入模块: from PySide.QtGui import QImage [as 别名]
# 或者: from PySide.QtGui.QImage import size [as 别名]
#.........这里部分代码省略.........
painter.drawLine(
self.imgW, i * self.ioH, self.imgW + self.ioW,
i * self.ioH)
painter.drawImage(QRectF(0, 0, self.imgW, self.imgH), self.image)
for i in range(ni):
painter.drawPath(self.inputPaths[i])
painter.drawLine(
0, (1 - int(ni / 2)) * self.ioH, 0, (1 + int(ni / 2)) * self.ioH)
for i in range(no):
painter.drawPath(self.outputPaths[i])
painter.drawLine(
self.imgW,
(1 - int(no / 2)) * self.ioH,
self.imgW,
(1 + int(no / 2)) * self.ioH)
# Default selection box doesn't work; simple reimplementation.
if option.state & QStyle.State_Selected:
pen = QPen(Qt.black, 1, Qt.DashLine)
painter.setPen(pen)
painter.drawRect(self.boundingRect())
def setCategoryVisibility(self, isVisible):
"""Show/Hide circuit category (mostly useful for user circuits)."""
self.showCategory = isVisible
self.setupPaint()
def setNameVisibility(self, isVisible):
"""Shows/Hide the item name in the graphical view."""
self.showName = isVisible
self.setupPaint()
def setNbInputs(self, nb):
"""Add/Remove inputs (for logical gates)."""
if nb > self.data.nb_inputs():
for x in range(nb - self.data.nb_inputs()):
Plug(True, None, self.data)
elif nb < self.data.nb_inputs():
for x in range(self.data.nb_inputs() - nb):
self.data.remove_input(self.data.inputList[0])
self.setupPaint()
def setupPaint(self):
"""Offscreen rather than onscreen redraw (few changes)."""
self.nIn = self.data.nb_inputs()
self.nOut = self.data.nb_outputs()
# 3 sections with different heights must be aligned :
self.imgH = self.image.size().height() # central (png image)
self.imgW = self.image.size().width()
self.inH = (self.nIn - 1) * self.ioH + 2 * self.radius # inputs
self.outH = (self.nOut - 1) * self.ioH + 2 * self.radius # outputs
# therefore we calculate a vertical offset for each section :
self.maxH = max(self.imgH, self.inH, self.outH)
self.imgOff = (
0 if self.maxH == self.imgH else (self.maxH - self.imgH) / 2.)
self.inOff = (
0 if self.maxH == self.inH else (self.maxH - self.inH) / 2.)
self.outOff = (
0 if self.maxH == self.outH else (self.maxH - self.outH) / 2.)
# i/o mouseover detection. Create once, use on each mouseMoveEvent.
self.inputPaths = []
self.outputPaths = []
ni = self.data.nb_inputs()
no = self.data.nb_outputs()
for i in range(1 - int(ni / 2), 2 + int(ni / 2)):
if i != 1 or ni % 2:
path = QPainterPath()
path.addEllipse(
-self.ioW - self.radius, i * self.ioH - self.radius / 2,
self.radius, self.radius)
self.inputPaths.append(path)
for i in range(1 - int(no / 2), 2 + int(no / 2)):
if i != 1 or no % 2:
path = QPainterPath()
path.addEllipse(
self.imgW + self.ioW, i * self.ioH - self.radius / 2,
self.radius, self.radius)
self.outputPaths.append(path)
self.name.setVisible(self.showName)
self.category.setVisible(self.showCategory)
if self.showName or self.showCategory:
br = self.mapToScene(self.boundingRect())
w = self.boundingRect().width()
h = self.boundingRect().height()
realX = min([i.x() for i in br])
realY = min([i.y() for i in br])
firstY = realY + (w if self.rotation() % 180 else h) + 1
secondY = firstY + self.textH
if self.showName:
self.name.setBrush(QColor('red'))
self.name.setText(self.data.name)
self.name.setPos(self.mapFromScene(realX, firstY))
if self.showCategory:
self.category.setBrush(QColor('green'))
self.category.setText(
self.data.category if self.data.category
else self.data.__class__.__name__)
self.category.setPos(self.mapFromScene(
realX, secondY if self.showName else firstY))
self.prepareGeometryChange() # Must be called (cf Qt doc)
self.update() # Force onscreen redraw after changes.