colorplane

master
Aaron 2 days ago
parent 90a477213f
commit 8d73008da1

@ -72,10 +72,11 @@ namespace ams
void clear();
void setall(amspixel color);
//todo
int get_colorplane(int Ncp, amsbitplane* bp);
int set_colorplane(int Ncp, const amsbitplane* bp);
amsbitplane get_colorplane(int Ncp);
int set_colorplane(int Ncp, const amsbitplane *bp);
//todo
//applies image with alpha blending
int apply_image(int I0, int J0, amsimage *img);

@ -583,4 +583,53 @@ namespace ams
return;
}
amsbitplane amsimage::get_colorplane(int Ncp)
{
amsbitplane ret;
int res;
res = ret.resize(this->Nx,this->Ny);
if(res!=amsimage_success)
{
printf("amsimage::get_colorplane: error: bitplane failed to resize.\n");
return ret;
}
if(Ncp<0 || Ncp>=4)
{
printf("amsimage::get_colorplane: error: %d is outside indices of valid colorplanes [0,4)\n",Ncp);
return ret;
}
imglib4::amsimage_plane_copy(
ret.data,
0,1,ret.Nx,ret.Ny,
this->data,Ncp,4,this->Nx,this->Ny,
0,0
);
return ret;
}
int amsimage::set_colorplane(int Ncp, const amsbitplane *bp)
{
int ret = amsimage_success;
int res;
if(Ncp<0 || Ncp>=4)
{
ret = amsimage_failure;
printf("amsimage::set_colorplane: error: %d is outside indices of valid colorplanes [0,4)\n",Ncp);
return ret;
}
imglib4::amsimage_plane_copy(
this->data, Ncp, 4, this->Nx, this->Ny,
bp->data, 0, 1, bp->Nx, bp->Ny,
0,0
);
return ret;
}
};
Loading…
Cancel
Save