Nominate our 2022 Qt Champions!

How can QT help me create retouching app? - GraphicsView? openGL?

  • Hello

    So I was tinkering about idea of creating retouching app.

    Main proporties :
    adjustment layers - curve/hue/exposure/level
    brush with textures
    stamp tool
    transform tool
    some noise generators.

    Now if I were to attempt that program. I thought of using QGraphicsView to allow for easy layer zoom in/out/pan around + I could have more than 1 layer visible - so many layers around each other and just transform the qgraphicsItem. I would also use qtreeView/list to display layers and use that to set zdepth of my graphicsItems.

    I suppose I could use QGraphicsVIew with QOpenGLWidget set as a viewport to accelerate it?

    And I thought of using OpenGL to tile the large layers in to smaller tiles/buckets and use that for my image acceleration.

    Now I'm not quite sure how I could utilize qgraphicsView with custom OpenGL for image processing, any hints?

    And how else I could handle the qgraphicsVIew with openGL really. Is this a right idea approach? How would I create a widget that allow me to pan around/zoom freely and then accelerate it all via gpu if I cant use graphicsView?

    Working size up 20-30k 32/16/8 bit


  • Lifetime Qt Champion


    You might want to consider taking a look at Krita which is an open source painting application based on Qt.

    For the types of image you want to process, QGraphicsView won't fill the bill as QPixmap and QImage converts to 8bit based formats for display.

  • Humhhhh that Krita is quite interesting, thansk!

    So I'm now thinking that I should run it all on openGL, create a "workspace" entirely in gl, use triangles/ortho camera to create layers and then just treat it as 3d/2d workspace.... Tile large images in to smaller ones and keep it run this way. So now I have to figure out how to transfer 1 openGL 3d viewport output on to another opengl 2d/3d viewport mhmmm

Log in to reply