Esempio n. 1
0
static void windowDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glRasterPos2i(0,0);
    glPixelStorei(GL_UNPACK_ALIGNMENT,1);
    glDrawPixels(img.width(), img.height(), GL_RGB, GL_UNSIGNED_BYTE, img.raw_data());
    glFlush();
}
Esempio n. 2
0
void animation() {

    char filename[1024];
    int totalPic = 120;
    float blkSize = 2;
    int pid = 0;
    RGBImage sImg = imgs[0];
    RGBImage fadeInImg = halftone(imgs[0], 2);
    RGBImage fadeOutImg = halftone(imgs[1], 2);

    float fadeInL = 10.0f, fadeOutL = 10.0f;
    for(int i=0;i<fadeInL;i++,pid++) {
        float ratio = 1.0 - i / (fadeInL-1.0);
        sImg = ImageUtils::blend(imgs[0], fadeInImg, ratio);
        img = ImageUtils::flip(sImg);

        sprintf(filename, "img%d.png", pid);
        saveImage(sImg, filename);

        glClear(GL_COLOR_BUFFER_BIT);
        glRasterPos2i(0,0);
        glPixelStorei(GL_UNPACK_ALIGNMENT,1);
        glDrawPixels(img.width(), img.height(), GL_RGB, GL_UNSIGNED_BYTE, img.raw_data());
        glFlush();
    }

    float transitionL = 10.0f;
    int tstartId = (totalPic-transitionL)/2;

    float ratio=1.0;
    for(int i=0;i<totalPic/2;i++, pid++) {
        blkSize += 2;
        currentBlkSize = Utils::clamp<int>(blkSize, 2, 1280);

        ratio = 1.0 - Utils::clamp((pid - tstartId) / transitionL, 0.0f, 1.0f);
        sImg = ImageUtils::blend(imgs[0], imgs[1], ratio);

        RGBImage hImg = halftone(sImg, currentBlkSize);

        img = ImageUtils::flip(hImg);

        sprintf(filename, "img%d.png", pid);
        saveImage(hImg, filename);

        glClear(GL_COLOR_BUFFER_BIT);
        glRasterPos2i(0,0);
        glPixelStorei(GL_UNPACK_ALIGNMENT,1);
        glDrawPixels(img.width(), img.height(), GL_RGB, GL_UNSIGNED_BYTE, img.raw_data());
        glFlush();
    }

    for(int i=0;i<totalPic/2;i++, pid++) {
        blkSize -= 2;
        currentBlkSize = Utils::clamp<int>(blkSize, 2, 1280);
        ratio = 1.0 - Utils::clamp((pid - tstartId) / transitionL, 0.0f, 1.0f);
        sImg = ImageUtils::blend(imgs[0], imgs[1], ratio);

        RGBImage hImg = halftone(sImg, currentBlkSize);
        img = ImageUtils::flip(hImg);

        sprintf(filename, "img%d.png", pid);
        saveImage(hImg, filename);

        glClear(GL_COLOR_BUFFER_BIT);
        glRasterPos2i(0,0);
        glPixelStorei(GL_UNPACK_ALIGNMENT,1);
        glDrawPixels(img.width(), img.height(), GL_RGB, GL_UNSIGNED_BYTE, img.raw_data());
        glFlush();
    }

    for(int i=0;i<fadeOutL;i++,pid++) {
        float ratio = i / (fadeOutL-1.0);
        sImg = ImageUtils::blend(imgs[1], fadeOutImg, ratio);
        img = ImageUtils::flip(sImg);

        sprintf(filename, "img%d.png", pid);
        saveImage(sImg, filename);

        glClear(GL_COLOR_BUFFER_BIT);
        glRasterPos2i(0,0);
        glPixelStorei(GL_UNPACK_ALIGNMENT,1);
        glDrawPixels(img.width(), img.height(), GL_RGB, GL_UNSIGNED_BYTE, img.raw_data());
        glFlush();
    }
}