1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00
Beef/BeefySysLib/img/ImageUtils.h
2019-08-23 11:56:54 -07:00

51 lines
1.3 KiB
C++

#pragma once
#include "Common.h"
NS_BF_BEGIN;
class ImageData;
struct PackedColor
{
uint8 r;
uint8 g;
uint8 b;
uint8 a;
};
class PackedColorGetR
{
public:
int operator()(PackedColor color) { return color.r; }
};
class PackedColorGetG
{
public:
int operator()(PackedColor color) { return color.g; }
};
class PackedColorGetB
{
public:
int operator()(PackedColor color) { return color.b; }
};
class PackedColorGetGray
{
public:
int operator()(PackedColor color) { return ((color.r * 300) + (color.g * 586) + (color.b * 113)) / 1000; }
};
ImageData* CreateResizedImageUnion(ImageData* src, int x, int y, int width, int height);
ImageData* CreateEmptyResizedImageUnion(ImageData* src, int x, int y, int width, int height);
void CrossfadeImage(ImageData* origImage, ImageData* newImage, float opacity);
void BlendImage(ImageData* dest, ImageData* src, int destX, int destY, float alpha = 1.0f, int mixType = 'Nrml', bool fullAlpha = false);
void BlendImagesTogether(ImageData* bottomImage, ImageData* topImage, ImageData* alphaImage);
void SetImageAlpha(ImageData* image, ImageData* alphaImage);
void MultiplyImageAlpha(ImageData* image, ImageData* alphaImage);
void SetImageAlpha(ImageData* image, int alpha);
void CopyImageBits(ImageData* dest, ImageData* src);
NS_BF_END;