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()