|
Coin3D is Free Software, published under the BSD 3-clause license. |
https://bitbucket.org/Coin3D/ http://www.kongsberg.com/kogt/ |
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <assert.h>#include <simage.h>Data Structures | |
| struct | Image |
| struct | CONTRIB |
| struct | CLIST |
Macros | |
| #define | M_PI 3.14159265358979323846 |
| #define | filter_support (1.0f) |
| #define | box_support (0.5f) |
| #define | triangle_support (1.0f) |
| #define | bell_support (1.5f) |
| #define | B_spline_support (2.0f) |
| #define | Lanczos3_support (3.0f) |
| #define | Mitchell_support (2.0) |
| #define | B (1.0f / 3.0f) |
| #define | C (1.0f / 3.0f) |
Functions | |
| static void | get_row (unsigned char *row, Image *image, int y) |
| static void | get_column (unsigned char *column, Image *image, int x) |
| static void | put_pixel (Image *image, int x, int y, float *data) |
| static float | filter (float t) |
| static float | box_filter (float t) |
| static float | triangle_filter (float t) |
| static float | bell_filter (float t) |
| static float | B_spline_filter (float t) |
| static float | sinc (float x) |
| static float | Lanczos3_filter (float t) |
| static float | Mitchell_filter (float t) |
| static Image * | new_image (int xsize, int ysize, int bpp, unsigned char *data) |
| static void | zoom (Image *dst, Image *src, float(*filterf)(float), float fwidth) |
| static unsigned char * | simage_resize_fast (unsigned char *src, int width, int height, int num_comp, int newwidth, int newheight) |
| unsigned char * | simage_resize (unsigned char *src, int width, int height, int num_comp, int newwidth, int newheight) |
| #define M_PI 3.14159265358979323846 |
| #define filter_support (1.0f) |
| #define box_support (0.5f) |
| #define triangle_support (1.0f) |
| #define bell_support (1.5f) |
| #define B_spline_support (2.0f) |
| #define Lanczos3_support (3.0f) |
| #define Mitchell_support (2.0) |
| #define B (1.0f / 3.0f) |
| #define C (1.0f / 3.0f) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| unsigned char* simage_resize | ( | unsigned char * | imagedata, |
| int | width, | ||
| int | height, | ||
| int | numcomponents, | ||
| int | newwidth, | ||
| int | newheight | ||
| ) |
Since OpenGL textures must have width and height equal to 2^n, this is often needed. A pointer to the new image data is returned. imagedata is not freed. Uses the algorithm "Filtered Image Rescaling" by Dale Schumacher, from GGems III.
Scales the input imagedata and return a new image with the given dimensions returned image buffer must be freed by simage_free_image()