Witam,
tak jak w temacie piszę w Microsoft Visual Studio 2008 i korzystam z biblioteki Qt.
c++
Chciałbym w moim projekcie stowrzyć bitmapę abym mógł dowolnie zmieniać kolory pixeli.
Proszę o pomoc.
Witam,
tak jak w temacie piszę w Microsoft Visual Studio 2008 i korzystam z biblioteki Qt.
c++
Chciałbym w moim projekcie stowrzyć bitmapę abym mógł dowolnie zmieniać kolory pixeli.
Proszę o pomoc.
Dodaj na formę kontrolkę QGraphicsView i podepnij do niej QGraphicsScene. Na scenie rysujesz metodami w stylu scene.addText, scene.addRect itp. Żeby to co będzie narysowane zapisać do pliku to musisz utworzyć obiekt QImage o wymaganych rozmiarach, utworzyć QPainter tego obrazu, wyrenderować na tym painterze zawartość sceny i zapisać plik metodą QImage'a - save().
Kod zapisywania pliku png w PyQt4:
def zapiszObraz(self):
filename=QtGui.QFileDialog.getSaveFileName(None,"Zapisz obraz...","", "*.png")
if filename:
img = QtGui.QImage(int(self.save_x),int(self.save_y),QtGui.QImage.Format_ARGB32_Premultiplied)
p = QtGui.QPainter(img)
self.scene.render(p)
p.end()
img.save(filename)
Obraz ze sceny jest wektorowy i skaluje się do rozmiaru obrazu: self.save_x, self.save_y (to z mojego projektu zmienne, które definiuję gdzieś indziej w kodzie ;) ).
Do manipulacji pikselami służy klasa QImage(popatrz sobie w dokumentacji na konstruktory),zaś do pikseli dostajesz się poprzez np pixel() albo bits().Jest to ładnie opisane w rozdziale Pixel Manipulation