It heavily depends on the image format. In a general case unfortunately you have to iterate over pixels, read their values, adjust the alpha of the other picture and store the modified value. Or you can probably use composition modes available for QPainter to draw one image on top of the other however I'm quite certain that operation is going to be slower than the former one.