• Skip to content
  • Skip to link menu
KDE 4.4 API Reference
  • KDE API Reference
  • KDE Support
  • Sitemap
  • Contact Us
 

qimageblitz

scalefilter.cpp File Reference

#include "qimageblitz.h"
#include <cmath>
Include dependency graph for scalefilter.cpp:

Go to the source code of this file.

Namespaces

namespace  BlitzScaleFilter

Defines

#define B   (1.0/3.0)
#define C   (1.0/3.0)
#define MagickEpsilon   1.0e-6
#define MagickPI   3.14159265358979323846264338327950288419716939937510
#define P0   (( 6.0- 2.0*B )/6.0)
#define P2   ((-18.0+12.0*B+ 6.0*C)/6.0)
#define P3   (( 12.0- 9.0*B- 6.0*C)/6.0)
#define Q0   (( 8.0*B+24.0*C)/6.0)
#define Q1   (( -12.0*B-48.0*C)/6.0)
#define Q2   (( 6.0*B+30.0*C)/6.0)
#define Q3   (( - 1.0*B- 6.0*C)/6.0)

Functions

float BlitzScaleFilter::Bessel (const float x, const float)
float BlitzScaleFilter::BesselOrderOne (float x)
float BlitzScaleFilter::Blackman (const float x, const float)
float BlitzScaleFilter::BlackmanBessel (const float x, const float support)
float BlitzScaleFilter::BlackmanSinc (const float x, const float support)
float BlitzScaleFilter::Box (const float x, const float)
float BlitzScaleFilter::Catrom (const float x, const float)
float BlitzScaleFilter::Cubic (const float x, const float)
float BlitzScaleFilter::Gaussian (const float x, const float)
float BlitzScaleFilter::Hamming (const float x, const float)
float BlitzScaleFilter::Hanning (const float x, const float)
float BlitzScaleFilter::Hermite (const float x, const float)
bool BlitzScaleFilter::horizontalFilter (QImage *srcImg, QImage *destImg, float x_factor, float blur, ContributionInfo *contribution, Blitz::ScaleFilterType filter)
float BlitzScaleFilter::J1 (float x)
float BlitzScaleFilter::Lanczos (const float x, const float support)
float BlitzScaleFilter::Mitchell (const float x, const float)
float BlitzScaleFilter::P1 (float x)
float BlitzScaleFilter::Q1 (float x)
float BlitzScaleFilter::Quadratic (const float x, const float)
float BlitzScaleFilter::Sinc (const float x, const float)
float BlitzScaleFilter::Triangle (const float x, const float)
bool BlitzScaleFilter::verticalFilter (QImage *srcImg, QImage *destImg, float y_factor, float blur, ContributionInfo *contribution, Blitz::ScaleFilterType filter)

Variables

static const float BlitzScaleFilter::filterSupport [Blitz::SincFilter+1]
static const float BlitzScaleFilter::J1Pone []
static const float BlitzScaleFilter::J1Qone []
static const float BlitzScaleFilter::P1Pone []
static const float BlitzScaleFilter::P1Qone []
static const float BlitzScaleFilter::Q1Pone []
static const float BlitzScaleFilter::Q1Qone []

Define Documentation

#define B   (1.0/3.0)
#define C   (1.0/3.0)
#define MagickEpsilon   1.0e-6

This is a port of the ImageMagick scaling functions from resize.c.

The most signficant change is ImageMagick uses a function pointer for the filter type. This is called usually a couple times in a loop for each horizontal and vertical coordinate. I changed this into a switch statement that does each type with inline functions. More code but faster.

Definition at line 70 of file scalefilter.cpp.

#define MagickPI   3.14159265358979323846264338327950288419716939937510

Definition at line 71 of file scalefilter.cpp.

#define P0   (( 6.0- 2.0*B )/6.0)
#define P2   ((-18.0+12.0*B+ 6.0*C)/6.0)
#define P3   (( 12.0- 9.0*B- 6.0*C)/6.0)
#define Q0   (( 8.0*B+24.0*C)/6.0)
#define Q1   (( -12.0*B-48.0*C)/6.0)
#define Q2   (( 6.0*B+30.0*C)/6.0)
#define Q3   (( - 1.0*B- 6.0*C)/6.0)

qimageblitz

Skip menu "qimageblitz"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

KDE Support

Skip menu "KDE Support"
  • akonadi
  • Decibel
  • grantlee
  • kdewin
  • phonon
  •     Backend
  • polkit-qt
  • qca
  • qimageblitz
  • soprano
  • strigi
  •     searchclient
  •     streamanalyzer
  •     streams
Generated for KDE Support by doxygen 1.5.9-20090814
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal