65.9K
CodeProject is changing. Read more.
Home

PhoXo Core Library (PCL)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.76/5 (9 votes)

Jul 26, 2004

viewsIcon

54756

downloadIcon

2278

A powerful image manipulation library for C++.

Introduction

PCL is a set of powerful image manipulation library for C++, its a kernel of PhoXo (a 32 bit image manipulation software).

Main features

  • platform independent code
  • region selection
  • tens of image effect
  • Undo/Redo support
  • multiple-layer support
  • handle progress support
  • histogram
  • image file read/write
  • text layer (now using WIN32-GDI+ to render anti-aliasing text, future will use FreeType to render)

Using the code

The package includes three example, and detailed compile step.

This is part code in example - simple_imgobj :

    FCSinglePixelProcessBase   * pEffect = NULL ;
    switch (atoi(szInput))
    {
        case 1 : pEffect = new FCPixelInvert() ; break ;
        case 2 : pEffect = new FCPixelGrayscale() ; break ;
        case 3 : pEffect = new FCPixelThreshold(100) ; break ;
        case 4 : pEffect = new FCPixelFlip() ; break ;
        case 5 : pEffect = new FCPixelEmboss(2) ; break ;
        case 6 : pEffect = new FCPixelSplash(15) ; break ;
        case 7 : pEffect = new FCPixelMosaic(10) ; break ;
        case 8 : pEffect = new FCPixelOilPaint(7) ; break ;
        case 9 : pEffect = new FCPixel3DGrid(16,100) ; break ;
        case 10 : pEffect = new FCPixelWhirlPinch(LIB_PI/2.0,10) ; break ;
        case 11 :
            {
                RECT    rcEllipse = {0,0,imgHandle.Width(),imgHandle.Height()} ;
                RGBQUAD crStart = {255,255,255}, crEnd = {255,0,0} ;
                pEffect = new FCPixelGradientRadial(rcEllipse,crStart,crEnd) ;
            }
            break ;
        case 12 : pEffect = new FCPixelGamma(2) ; break ;
        case 13 : pEffect = new FCPixelRotate90() ; break ;
        case 14 : pEffect = new FCPixelRibbon(35,25) ; break ;
        case 15 : pEffect = new FCPixelHalftoneM3() ; break ;
        default :
            printf ("choice invalid. quit do nothing.\n") ;
            return 0 ;
    }

    // to show progress, it's obvious in large image and 
    // slower algorithm (such as : OilPaint)
    FCShowProgress     showPro ;
    printf ("\ncurrent progress : ") ;
    imgHandle.SinglePixelProcessProc (*pEffect, &showPro) ;
    printf ("\n\n") ;
    delete pEffect ;

History

Version 2.1
12. July 2004
Initial publication