diff --git a/QT/alpha-blending/l0.png b/QT/alpha-blending/l0.png new file mode 100644 index 0000000..52184bf Binary files /dev/null and b/QT/alpha-blending/l0.png differ diff --git a/QT/alpha-blending/l1.png b/QT/alpha-blending/l1.png new file mode 100644 index 0000000..72b2051 Binary files /dev/null and b/QT/alpha-blending/l1.png differ diff --git a/QT/alpha-blending/mywindow.cpp b/QT/alpha-blending/mywindow.cpp index df76cab..3fab374 100644 --- a/QT/alpha-blending/mywindow.cpp +++ b/QT/alpha-blending/mywindow.cpp @@ -48,7 +48,6 @@ std::vector matrixMul3x3(std::vector m1, std::vector m2) return res; } - QColor mul(float v, QColor c){ int red = (int)(c.red() * v); if(red > 255) red = 255; @@ -56,7 +55,9 @@ QColor mul(float v, QColor c){ if(green > 255) green = 255; int blue = (int)(c.blue() * v); if(blue > 255) blue = 255; - return QColor(red, green, blue); + int alpha = (int)(c.alpha() * v); + if(alpha > 255) alpha = 255; + return QColor(red, green, blue, alpha); } QColor add(QColor c1, QColor c2){ @@ -66,7 +67,9 @@ QColor add(QColor c1, QColor c2){ if(green > 255) green = 255; int blue = (int)(c1.blue() + c2.blue()); if(blue > 255) blue = 255; - return QColor(red, green, blue); + int alpha = (int)(c1.alpha() + c2.alpha()); + if(alpha > 255) alpha = 255; + return QColor(red, green, blue, alpha); } // Definicja konstruktora, wywolujemy najpierw // konstruktor klasy nadrzednej, nastepnie tworzymy @@ -94,12 +97,16 @@ MyWindow::MyWindow(QWidget *parent) : // (0xffRRGGBB). img = new QImage(szer,wys,QImage::Format_RGB32); - loaded_img1 = new QImage("/home/davp/umk/2022_2023/GK/QT/alpha-blending/p.png"); - loaded_img2 = new QImage("/home/davp/umk/2022_2023/GK/QT/alpha-blending/f.png"); +// loaded_img1 = new QImage("/Users/dawidpietrykowski/Desktop/projects/umk/GK/QT/alpha-blending/p.png"); +// loaded_img2 = new QImage("/Users/dawidpietrykowski/Desktop/projects/umk/GK/QT/alpha-blending/f.png"); + loaded_img1 = new QImage("/Users/dawidpietrykowski/Desktop/projects/umk/GK/QT/alpha-blending/l0.png"); + loaded_img2 = new QImage("/Users/dawidpietrykowski/Desktop/projects/umk/GK/QT/alpha-blending/l1.png"); rotation_angle = 0; + alpha = 0; + UpdateImage(); } diff --git a/QT/triangle-textures/mywindow.cpp b/QT/triangle-textures/mywindow.cpp index 416c498..1fad8c2 100644 --- a/QT/triangle-textures/mywindow.cpp +++ b/QT/triangle-textures/mywindow.cpp @@ -56,7 +56,9 @@ QColor mul(float v, QColor c){ if(green > 255) green = 255; int blue = (int)(c.blue() * v); if(blue > 255) blue = 255; - return QColor(red, green, blue); + int alpha = (int)(c.alpha() * v); + if(alpha > 255) alpha = 255; + return QColor(red, green, blue, alpha); } QColor add(QColor c1, QColor c2){ @@ -66,7 +68,9 @@ QColor add(QColor c1, QColor c2){ if(green > 255) green = 255; int blue = (int)(c1.blue() + c2.blue()); if(blue > 255) blue = 255; - return QColor(red, green, blue); + int alpha = (int)(c1.alpha() + c2.alpha()); + if(alpha > 255) alpha = 255; + return QColor(red, green, blue, alpha); } // Definicja konstruktora, wywolujemy najpierw // konstruktor klasy nadrzednej, nastepnie tworzymy @@ -117,6 +121,8 @@ MyWindow::MyWindow(QWidget *parent) : DrawPixel(img, x, y, color); } + UpdateImage(); + update(); }