~ubuntu-branches/ubuntu/karmic/photoprint/karmic

« back to all changes in this revision

Viewing changes to imagesource/imagesource_util.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Milan Zamazal
  • Date: 2007-05-01 16:32:13 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20070501163213-ni1933khtg9fdvn5
Tags: 0.3.5-2
Move to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
#include "imagesource_gdkpixbuf.h"
10
10
#include "imagesource_gs.h"
11
11
 
12
 
#include "imagesource_scale.h"
 
12
#include "imagesource_scale.h"
 
13
#include "imagesource_downsample.h"
13
14
#include "imagesource_bilinear.h"
14
15
#include "imagesource_lanczossinc.h"
15
16
 
23
24
        {"Fast","Very fast scaling with no interpolation"},
24
25
        {"Bilinear","An interpolation filter with mediocre speed and quality"},
25
26
        {"LanczosSinc","Slow but very high quality interpolation filter"},
26
 
        NULL
 
27
        {NULL,NULL},
 
28
        {"Downsample","High quality filter for reductions only"}
27
29
};
28
30
 
29
31
 
101
103
 
102
104
        // don't use an expensive scaling function if the image is being reduced...
103
105
        if((width<source->width) && (height<source->height))
104
 
        {
105
 
                cerr << "Image is being shrunk - using Nearest Neighbour scaling" << endl;
106
 
                quality=IS_SCALING_NEARESTNEIGHBOUR;
 
106
        {
 
107
                switch(quality)
 
108
                {
 
109
                        case IS_SCALING_NEARESTNEIGHBOUR:
 
110
                                cerr << "Image is being shrunk - using Nearest Neighbour scaling" << endl;
 
111
                                quality=IS_SCALING_NEARESTNEIGHBOUR;
 
112
                                break;
 
113
                        default:
 
114
                                cerr << "Using Downsample filter..." << endl;
 
115
                                quality=IS_SCALING_DOWNSAMPLE;
 
116
                                break;
 
117
                }
107
118
        }
108
119
 
109
120
        switch(quality)
111
122
                case IS_SCALING_NEARESTNEIGHBOUR:
112
123
                case IS_SCALING_LANCZOSSINC:
113
124
                case IS_SCALING_BILINEAR:
 
125
                case IS_SCALING_DOWNSAMPLE:
114
126
                        break;
115
127
                case IS_SCALING_AUTOMATIC:
116
128
                default:
142
154
                        break;
143
155
                case IS_SCALING_LANCZOSSINC:
144
156
                        result=new ImageSource_LanczosSinc(source,width,height);
145
 
                        break;
 
157
                        break;
 
158
                case IS_SCALING_DOWNSAMPLE:
 
159
                        result=new ImageSource_Downsample(source,width,height);
 
160
                        break;
146
161
        }
147
162
        return(result);
148
163
}