Browse Source

Added: ImageResizeCanvas() -WIP-

Added note idea on ImageFormat() for future redesign (to support
16bit-32bit pixel-formats)
pull/558/head
Ray 6 years ago
parent
commit
2536bea379
2 changed files with 18 additions and 2 deletions
  1. +3
    -2
      src/raylib.h
  2. +15
    -0
      src/textures.c

+ 3
- 2
src/raylib.h View File

@ -912,8 +912,9 @@ RLAPI void ImageAlphaClear(Image *image, Color color, float threshold);
RLAPI void ImageAlphaCrop(Image *image, float threshold); // Crop image depending on alpha value
RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel
RLAPI void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle
RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize and image (bilinear filtering)
RLAPI void ImageResizeNN(Image *image,int newWidth,int newHeight); // Resize and image (Nearest-Neighbor scaling algorithm)
RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize image (bilinear filtering)
RLAPI void ImageResizeNN(Image *image, int newWidth,int newHeight); // Resize image (Nearest-Neighbor scaling algorithm)
RLAPI void ImageResizeCanvas(Image *image, int newWidth,int newHeight, int anchor, Color color); // Resize canvas, using anchor point and color filling
RLAPI void ImageMipmaps(Image *image); // Generate all mipmap levels for a provided image
RLAPI void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font)

+ 15
- 0
src/textures.c View File

@ -664,6 +664,7 @@ void ImageFormat(Image *image, int newFormat)
if ((image->format < COMPRESSED_DXT1_RGB) && (newFormat < COMPRESSED_DXT1_RGB))
{
Color *pixels = GetImageData(*image);
//Vector4 *pixels = GetImageDataNormalized(*image); // TODO: Support 8->32bit channels
free(image->data); // WARNING! We loose mipmaps data --> Regenerated at the end...
image->data = NULL;
@ -1066,6 +1067,20 @@ void ImageResizeNN(Image *image,int newWidth,int newHeight)
free(pixels);
}
// Resize canvas, using anchor point and color filling
void ImageResizeCanvas(Image *image, int newWidth,int newHeight, int anchor, Color color)
{
Image imTemp = GenImageColor(newWidth, newHeight, color);
Rectangle rec = { 0, 0, image->width, image->height };
// TODO: consider anchor properly
ImageDraw(&imTemp, *image, rec, rec);
ImageFormat(&imTemp, image->format);
UnloadImage(*image);
*image = imTemp;
}
// Generate all mipmap levels for a provided image
// NOTE 1: Supports POT and NPOT images
// NOTE 2: image.data is scaled to include mipmap levels

Loading…
Cancel
Save