diff --git a/build_linux64/libamscppimglib4.linux64.a b/build_linux64/libamscppimglib4.linux64.a index ba57254..7e5fd13 100644 Binary files a/build_linux64/libamscppimglib4.linux64.a and b/build_linux64/libamscppimglib4.linux64.a differ diff --git a/build_linux64/objstore/amscppimglib4_amsimage.o b/build_linux64/objstore/amscppimglib4_amsimage.o index 3e66396..9984e9d 100644 Binary files a/build_linux64/objstore/amscppimglib4_amsimage.o and b/build_linux64/objstore/amscppimglib4_amsimage.o differ diff --git a/include/amscppimglib4/amscppimglib4.hpp b/include/amscppimglib4/amscppimglib4.hpp index fe11a03..4cd7638 100644 --- a/include/amscppimglib4/amscppimglib4.hpp +++ b/include/amscppimglib4/amscppimglib4.hpp @@ -72,11 +72,12 @@ namespace ams void clear(); void setall(amspixel color); + + amsbitplane get_colorplane(int Ncp); + int set_colorplane(int Ncp, const amsbitplane *bp); + //todo - int get_colorplane(int Ncp, amsbitplane* bp); - int set_colorplane(int Ncp, const amsbitplane* bp); - //applies image with alpha blending int apply_image(int I0, int J0, amsimage *img); diff --git a/src/amscppimglib4/amscppimglib4_amsimage.cpp b/src/amscppimglib4/amscppimglib4_amsimage.cpp index e02f3a6..c20c290 100644 --- a/src/amscppimglib4/amscppimglib4_amsimage.cpp +++ b/src/amscppimglib4/amscppimglib4_amsimage.cpp @@ -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; + } + }; \ No newline at end of file