AlbumShaper  1.0a3
Functions
crop.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

QImage * cropImage (QString filename, QPoint topLeft, QPoint bottomRight)

Function Documentation

QImage* cropImage ( QString  filename,
QPoint  topLeft,
QPoint  bottomRight 
)

Definition at line 36 of file crop.cpp.

Referenced by EditingInterface::crop().

{
  //load original image
  QImage origImage( filename );
  
  //convert to 32-bit depth if necessary
  if( origImage.depth() < 32 ) { origImage = origImage.convertDepth( 32, Qt::AutoColor ); }
  
  //construct cropped image
  QImage* croppedImage = new QImage(bottomRight.x() - topLeft.x() + 1, 
                                    bottomRight.y() - topLeft.y() + 1,
                                    origImage.depth());  
  
  //iterate over each selected scanline 
  int xOrig, yOrig;
  int xCropped, yCropped;
  uchar *origScanLine, *croppedScanLine;
  
  for( yOrig=topLeft.y(),yCropped=0;    yOrig<=bottomRight.y();     yOrig++, yCropped++)
  {   
    //iterate over each selected pixel in scanline
    origScanLine    = origImage.scanLine(yOrig);
    croppedScanLine = croppedImage->scanLine(yCropped);
    
    for( xOrig=topLeft.x(),xCropped=0; xOrig<=bottomRight.x(); xOrig++,xCropped++)
    {
      //copy pixel color from original image to cropped image
      *((QRgb*)croppedScanLine+xCropped) = *((QRgb*)origScanLine+xOrig);      
    }
  }
  
  //return pointer to cropped image
  return croppedImage;  
}