|
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>Go to the source code of this file.
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 B (1.0f / 3.0f) |
Definition at line 193 of file resize.c.
Referenced by Mitchell_filter().
| #define bell_support (1.5f) |
Definition at line 141 of file resize.c.
Referenced by simage_resize().
| #define C (1.0f / 3.0f) |
Definition at line 194 of file resize.c.
Referenced by Mitchell_filter().
|
static |
Definition at line 144 of file resize.c.
Referenced by simage_resize().
|
static |
Definition at line 66 of file resize.c.
References Image::bpp, Image::data, Image::span, and Image::ysize.
Referenced by zoom().
|
static |
Definition at line 55 of file resize.c.
References Image::bpp, Image::data, Image::span, and Image::xsize.
Referenced by zoom().
|
static |
|
static |
|
static |
Definition at line 234 of file resize.c.
References Image::bpp, Image::data, Image::span, Image::xsize, and Image::ysize.
Referenced by simage_resize(), and zoom().
|
static |
Definition at line 85 of file resize.c.
References Image::bpp, Image::data, and Image::span.
Referenced by zoom().
| 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()
Definition at line 512 of file resize.c.
References bell_filter(), bell_support, Image::data, new_image(), simage_resize_fast(), and zoom().
|
static |
Definition at line 466 of file resize.c.
Referenced by simage_resize().
|
static |
Definition at line 247 of file resize.c.
References Image::bpp, Image::data, get_column(), get_row(), CLIST::n, new_image(), CLIST::p, CONTRIB::pixel, put_pixel(), CONTRIB::weight, Image::xsize, and Image::ysize.
Referenced by simage_resize().