|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "tpixel.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tpixelgr.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
const int TPixelRGBM32::maxChannelValue = 0xff;
|
|
Toshihiro Shimizu |
890ddd |
const int TPixelRGBM64::maxChannelValue = 0xffff;
|
|
Shinya Kitaoka |
120a6e |
const int TPixelGR8::maxChannelValue = 0xff;
|
|
Shinya Kitaoka |
120a6e |
const int TPixelGR16::maxChannelValue = 0xffff;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM32 TPixelRGBM32::Red(maxChannelValue, 0, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM32 TPixelRGBM32::Green(0, maxChannelValue, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM32 TPixelRGBM32::Blue(0, 0, maxChannelValue);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM32 TPixelRGBM32::Yellow(maxChannelValue, maxChannelValue, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM32 TPixelRGBM32::Cyan(0, maxChannelValue, maxChannelValue);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM32 TPixelRGBM32::Magenta(maxChannelValue, 0, maxChannelValue);
|
|
Shinya Kitaoka |
120a6e |
const TPixelRGBM32 TPixelRGBM32::White(maxChannelValue, maxChannelValue,
|
|
Shinya Kitaoka |
120a6e |
maxChannelValue);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM32 TPixelRGBM32::Black(0, 0, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM32 TPixelRGBM32::Transparent(0, 0, 0, 0);
|
|
Toshihiro Shimizu |
890ddd |
//---------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM64 TPixelRGBM64::Red(maxChannelValue, 0, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM64 TPixelRGBM64::Green(0, maxChannelValue, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM64 TPixelRGBM64::Blue(0, 0, maxChannelValue);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM64 TPixelRGBM64::Yellow(maxChannelValue, maxChannelValue, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM64 TPixelRGBM64::Cyan(0, maxChannelValue, maxChannelValue);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM64 TPixelRGBM64::Magenta(maxChannelValue, 0, maxChannelValue);
|
|
Shinya Kitaoka |
120a6e |
const TPixelRGBM64 TPixelRGBM64::White(maxChannelValue, maxChannelValue,
|
|
Shinya Kitaoka |
120a6e |
maxChannelValue);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM64 TPixelRGBM64::Black(0, 0, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelRGBM64 TPixelRGBM64::Transparent(0, 0, 0, 0);
|
|
Toshihiro Shimizu |
890ddd |
//---------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
const TPixelD TPixelD::Red(1, 0, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelD TPixelD::Green(0, 1, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelD TPixelD::Blue(0, 0, 1);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelD TPixelD::Yellow(1, 1, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelD TPixelD::Cyan(0, 1, 1);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelD TPixelD::Magenta(1, 0, 1);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelD TPixelD::White(1, 1, 1);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelD TPixelD::Black(0, 0, 0);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelD TPixelD::Transparent(0, 0, 0, 0);
|
|
Toshihiro Shimizu |
890ddd |
//---------------------------------------------------
|
|
shun-iwasawa |
481b59 |
const float TPixelF::maxChannelValue = 1.f;
|
|
shun-iwasawa |
481b59 |
const TPixelF TPixelF::Red(1.f, 0.f, 0.f);
|
|
shun-iwasawa |
481b59 |
const TPixelF TPixelF::Green(0.f, 1.f, 0.f);
|
|
shun-iwasawa |
481b59 |
const TPixelF TPixelF::Blue(0.f, 0.f, 1.f);
|
|
shun-iwasawa |
481b59 |
const TPixelF TPixelF::Yellow(1.f, 1.f, 0.f);
|
|
shun-iwasawa |
481b59 |
const TPixelF TPixelF::Cyan(0.f, 1.f, 1.f);
|
|
shun-iwasawa |
481b59 |
const TPixelF TPixelF::Magenta(1.f, 0.f, 1.f);
|
|
shun-iwasawa |
481b59 |
const TPixelF TPixelF::White(1.f, 1.f, 1.f);
|
|
shun-iwasawa |
481b59 |
const TPixelF TPixelF::Black(0.f, 0.f, 0.f);
|
|
shun-iwasawa |
481b59 |
const TPixelF TPixelF::Transparent(0.f, 0.f, 0.f, 0.f);
|
|
shun-iwasawa |
481b59 |
//---------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
const TPixelGR8 TPixelGR8::White(maxChannelValue);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelGR8 TPixelGR8::Black(0);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
const TPixelGR16 TPixelGR16::White(maxChannelValue);
|
|
Toshihiro Shimizu |
890ddd |
const TPixelGR16 TPixelGR16::Black(0);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Campbell Barton |
8c6c57 |
static std::ostream &operator<<(std::ostream &out, const TPixel32 &pixel) {
|
|
Shinya Kitaoka |
120a6e |
return out << "PixRGBM32(" << (int)pixel.r << ", " << (int)pixel.g << ", "
|
|
Shinya Kitaoka |
120a6e |
<< (int)pixel.b << ", " << (int)pixel.m << ")";
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Campbell Barton |
8c6c57 |
static std::ostream &operator<<(std::ostream &out, const TPixel64 &pixel) {
|
|
Shinya Kitaoka |
120a6e |
return out << "PixRGBM64(" << pixel.r << ", " << pixel.g << ", " << pixel.b
|
|
Shinya Kitaoka |
120a6e |
<< ", " << pixel.m << ")";
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Campbell Barton |
8c6c57 |
static std::ostream &operator<<(std::ostream &out, const TPixelD &pixel) {
|
|
Shinya Kitaoka |
120a6e |
return out << "PixD(" << pixel.r << ", " << pixel.g << ", " << pixel.b << ", "
|
|
Shinya Kitaoka |
120a6e |
<< pixel.m << ")";
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//=============================================================================
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*
|
|
Toshihiro Shimizu |
890ddd |
TPixel32 DVAPI TPixel32::from(const TPixelGR8 &pix)
|
|
Toshihiro Shimizu |
890ddd |
{
|
|
Toshihiro Shimizu |
890ddd |
return TPixel32(pix.value, pix.value, pix.value, maxChannelValue);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TPixel32 DVAPI TPixel32::from(const TPixelGR16 &pix)
|
|
Toshihiro Shimizu |
890ddd |
{
|
|
Toshihiro Shimizu |
890ddd |
UCHAR value = byteFromUshort(pix.value);
|
|
Toshihiro Shimizu |
890ddd |
return TPixel32(value, value, value, maxChannelValue);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TPixelD DVAPI TPixelD::from(const TPixelGR8 &pix)
|
|
Toshihiro Shimizu |
890ddd |
{
|
|
Toshihiro Shimizu |
890ddd |
double v = (double)pix.value * (1.0/255.0);
|
|
Toshihiro Shimizu |
890ddd |
return TPixelD(v,v,v,v);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
TPixelD DVAPI TPixelD::from(const TPixelGR16 &pix)
|
|
Toshihiro Shimizu |
890ddd |
{
|
|
Toshihiro Shimizu |
890ddd |
double v = (double)pix.value * (1.0/65535.0);
|
|
Toshihiro Shimizu |
890ddd |
return TPixelD(v,v,v,v);
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
// TPixelGR8 TPixelGR8::from(const TPixelD &pix)
|
|
Toshihiro Shimizu |
890ddd |
//{
|
|
Toshihiro Shimizu |
890ddd |
// return from(TPixel32::from(pix));
|
|
Toshihiro Shimizu |
890ddd |
//}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TPixelGR8 DVAPI TPixelGR8::from(const TPixel32 &pix) {
|
|
Shinya Kitaoka |
120a6e |
return TPixelGR8((((UINT)(pix.r) * 19594 + (UINT)(pix.g) * 38472 +
|
|
Shinya Kitaoka |
120a6e |
(UINT)(pix.b) * 7470 + (UINT)(1 << 15)) >>
|
|
Shinya Kitaoka |
120a6e |
16));
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
shun-iwasawa |
481b59 |
|
|
Shinya Kitaoka |
120a6e |
TPixelGR16 DVAPI TPixelGR16::from(const TPixel64 &pix) {
|
|
Shinya Kitaoka |
120a6e |
return TPixelGR16((((UINT)(pix.r) * 19594 + (UINT)(pix.g) * 38472 +
|
|
Shinya Kitaoka |
120a6e |
(UINT)(pix.b) * 7470 + (UINT)(1 << 15)) >>
|
|
Shinya Kitaoka |
120a6e |
16));
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
shun-iwasawa |
481b59 |
|
|
shun-iwasawa |
481b59 |
TPixelGRF DVAPI TPixelGRF::from(const TPixelF &pix) {
|
|
shun-iwasawa |
481b59 |
return TPixelGRF(pix.r * 0.299f + pix.g * 0.587f + pix.b * 0.114f);
|
|
shun-iwasawa |
481b59 |
}
|
|
shun-iwasawa |
481b59 |
|
|
shun-iwasawa |
481b59 |
//-----------------------------------------------------------------------------
|