コード例 #1
0
 def getpixel(self, x, y):
     _x = int((x + 0.5) * self.boxsize)
     _y = int((y + 0.5) * self.boxsize)
     qpx = QPixmap.grabWidget(self)
     image = QImage(qpx.toImage())
     color = QColor(image.pixel(_x, _y))
     return color
class SetPixelFloat(UsesQApplication):
    '''Test case for calling setPixel with float as argument'''
    def setUp(self):
        #Acquire resources
        super(SetPixelFloat, self).setUp()
        self.color = qRgb(255, 0, 0)
        self.image = QImage(200, 200, QImage.Format_RGB32)

    def tearDown(self):
        #Release resources
        del self.color
        del self.image
        super(SetPixelFloat, self).tearDown()

    def testFloat(self):
        #QImage.setPixel(float, float, color) - Implicit conversion
        self.image.setPixel(3.14, 4.2, self.color)
        self.assertEqual(self.image.pixel(3.14, 4.2), self.color)
コード例 #3
0
class ImagenQImage(BaseImagen):
    def __init__(self):
        super(ImagenQImage, self).__init__()
        self.mode = "No implementado"

    @property
    def size(self):
        return (self.img.width(), self.img.height())

    def fromfile(self, filename):
        self.img = QImage(filename)

    def from_instance(self, qimage):
        self.img = qimage

    def empty(self, size, mode=QImage.Format_RGB888):
        self.img = QImage(size[0], size[1], mode)
        self.img.fill(qRgb(0, 0, 0))  #Rellenamos la imagen con negro

    def getpixel(self, xy):
        color = self.img.pixel(xy[0], xy[1])
        return (qRed(color), qGreen(color), qBlue(color))

    def putpixel(self, xy, value):
        self.img.setPixel(xy[0], xy[1], qRgb(value[0], value[1], value[2]))

    def get_img(self):
        return self.img

    def save(self, filename):
        self.img.save(filename, format="BMP", quality=100)

    def from_opencv(self, img_opencv):
        dst = cv2.cvtColor(img_opencv, cv2.COLOR_BGR2RGB)
        qim = QImage(dst.data, dst.shape[1], dst.shape[0], dst.strides[0],
                     QImage.Format_RGB888)
        self.img = qim.copy()
コード例 #4
0
ファイル: imagen.py プロジェクト: zikofv/pdi
class ImagenQImage(BaseImagen):
  def __init__(self):
    super(ImagenQImage, self).__init__()
    self.mode = "No implementado"

  @property
  def size(self):
    return (self.img.width(), self.img.height())

  def fromfile(self, filename):
    self.img = QImage(filename)

  def from_instance(self, qimage):
    self.img = qimage

  def empty(self, size, mode=QImage.Format_RGB888):
    self.img = QImage(size[0], size[1], mode)
    self.img.fill(qRgb(0,0,0))#Rellenamos la imagen con negro

  def getpixel(self, xy):
    color = self.img.pixel(xy[0], xy[1])
    return (qRed(color), qGreen(color), qBlue(color))

  def putpixel(self, xy, value):
    self.img.setPixel(xy[0], xy[1], qRgb(value[0], value[1], value[2]))

  def get_img(self):
    return self.img

  def save(self, filename):
    self.img.save(filename, format="BMP", quality=100)

  def from_opencv(self, img_opencv):
    dst = cv2.cvtColor(img_opencv, cv2.COLOR_BGR2RGB)
    qim = QImage(dst.data, dst.shape[1], dst.shape[0], dst.strides[0], QImage.Format_RGB888)
    self.img = qim.copy()
コード例 #5
0
ファイル: 179.py プロジェクト: jwthomson/dailyprogrammer
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")
コード例 #6
0
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")