diff --git a/uppsrc/Draw/src.tpp/Image$en-us.tpp b/uppsrc/Draw/src.tpp/Image$en-us.tpp index 585ad92d9..441a66040 100644 --- a/uppsrc/Draw/src.tpp/Image$en-us.tpp +++ b/uppsrc/Draw/src.tpp/Image$en-us.tpp @@ -200,4 +200,214 @@ as static member methods:&] :: [s0; SizeBottom] :: [s0; SizeBottomRight]}}]}}&] [s3; &] -[s0; ] \ No newline at end of file +[s0;%% &] +[s0;%% &] +[s0; &] +[ {{10000@(113.42.0) [s0;%% [*@(229)4 Utility functions]]}}&] +[s4; &] +[s5;:WithHotSpots`(const Image`&`,int`,int`,int`,int`): [_^Image^ Image]_[* WithHotSpots]( +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], [@(0.0.255) int]_[*@3 x1], +[@(0.0.255) int]_[*@3 y1], [@(0.0.255) int]_[*@3 x2], [@(0.0.255) int]_[*@3 y2])&] +[s2;%% Returns a new Image based in Image [%-*@3 m] with hotspots [%-*@3 x1,] +[%-*@3 y1] and [%-*@3 x2,] [%-*@3 y2].&] +[s3;%% &] +[s4;%% &] +[s5;:WithHotSpot`(const Image`&`,int`,int`): [_^Image^ Image]_[* WithHotSpot]([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], [@(0.0.255) int]_[*@3 x1], +[@(0.0.255) int]_[*@3 y1])&] +[s2; [%% Returns a new Image based in Image ][*@3 m][%% with hotspots +][*@3 x1,][%% ][*@3 y1.]&] +[s3;%% &] +[s4; &] +[s5;:CreateImage`(Size`,const RGBA`&`): [_^Image^ Image]_[* CreateImage]([_^Size^ Size]_[*@3 s +z], [@(0.0.255) const]_[_^RGBA^ RGBA][@(0.0.255) `&]_[*@3 rgba])&] +[s2;%% Creates a new Image with Size [%-*@3 sz] filled with color [%-*@3 rgba].&] +[s3;%% &] +[s4; &] +[s5;:CreateImage`(Size`,Color`): [_^Image^ Image]_[* CreateImage]([_^Size^ Size]_[*@3 sz], +[_^Color^ Color]_[*@3 color])&] +[s2;%% Creates a new Image with Size [%-*@3 sz] filled with color [%-*@3 color].&] +[s3;%% &] +[s4; &] +[s5;:DstSrc`(ImageBuffer`&`,Point`&`,const Image`&`,Rect`&`): [_^Size^ Size]_[* DstSrc]([_^ImageBuffer^ I +mageBuffer][@(0.0.255) `&]_[*@3 dest], [_^Point^ Point][@(0.0.255) `&]_[*@3 p], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 src], [_^Rect^ Rect][@(0.0.255) `&]_[*@3 s +r])&] +[s2;%% Calculates the minimum Size of Rect [%-*@3 sr] of Image [%-*@3 src] +when trying to copy it into Point [%-*@3 p] of ImageBuffer [%-*@3 dest].&] +[s3;%% &] +[s4; &] +[s5;:DstSrcOp`(ImageBuffer`&`,Point`,const Image`&`,const Rect`&`,void`(`*`)`(RGBA`*t`,const RGBA`*s`,int n`)`): [@(0.0.255) v +oid]_[* DstSrcOp]([_^ImageBuffer^ ImageBuffer][@(0.0.255) `&]_[*@3 dest], +[_^Point^ Point]_[*@3 p], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 src], +[@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 srect], [@(0.0.255) void]_(`*[*@3 op])( +RGBA_`*t, [@(0.0.255) const]_RGBA_`*s, [@(0.0.255) int]_n))&] +[s2;%% Copies Rect [%-*@3 srect] of Image [%-*@3 src] into Point [%-*@3 p] +of ImageBuffer [%-*@3 dest] using copying function [%-*@3 op].&] +[s3;%% &] +[s4; &] +[s5;:Copy`(ImageBuffer`&`,Point`,const Image`&`,const Rect`&`): [@(0.0.255) void]_[* Copy +]([_^ImageBuffer^ ImageBuffer][@(0.0.255) `&]_[*@3 dest], [_^Point^ Point]_[*@3 p], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 src], [@(0.0.255) const]_[_^Rect^ Rec +t][@(0.0.255) `&]_[*@3 srect])&] +[s2;%% Copies Rect [%-*@3 srect] of Image [%-*@3 src] into Point [%-*@3 p] +of ImageBuffer [%-*@3 dest].&] +[s3;%% &] +[s4; &] +[s5;:Copy`(Image`&`,Point`,const Image`&`,const Rect`&`): [@(0.0.255) void]_[* Copy]([_^Image^ I +mage][@(0.0.255) `&]_[*@3 dest], [_^Point^ Point]_[*@3 p], [@(0.0.255) const]_[_^Image^ Image +][@(0.0.255) `&]_[*@3 src], [@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 srect])&] +[s2;%% Copies Rect [%-*@3 srect] of Image [%-*@3 src] into Point [%-*@3 p] +of Image [%-*@3 dest].&] +[s3;%% &] +[s4; &] +[s5;:Over`(ImageBuffer`&`,Point`,const Image`&`,const Rect`&`): [@(0.0.255) void]_[* Over +]([_^ImageBuffer^ ImageBuffer][@(0.0.255) `&]_[*@3 dest], [_^Point^ Point]_[*@3 p], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 src], [@(0.0.255) const]_[_^Rect^ Rec +t][@(0.0.255) `&]_[*@3 srect])&] +[s2;%% Mixes using alpha information Rect [%-*@3 srect] of Image [%-*@3 src] +into Point [%-*@3 p] of ImageBuffer [%-*@3 dest].&] +[s3;%% &] +[s4; &] +[s5;:Over`(Image`&`,Point`,const Image`&`,const Rect`&`): [@(0.0.255) void]_[* Over]([_^Image^ I +mage][@(0.0.255) `&]_[*@3 dest], [_^Point^ Point]_[*@3 p], [@(0.0.255) const]_[_^Image^ Image +][@(0.0.255) `&]_[*@3 src], [@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 srect])&] +[s2;%% Mixes using alpha information Rect [%-*@3 srect] of Image [%-*@3 src] +into Point [%-*@3 p] of Image [%-*@3 dest].&] +[s3;%% &] +[s4; &] +[s5;:OverStraightOpaque`(ImageBuffer`&`,Point`,const Image`&`,const Rect`&`): [@(0.0.255) v +oid]_[* OverStraightOpaque]([_^ImageBuffer^ ImageBuffer][@(0.0.255) `&]_[*@3 dest], +[_^Point^ Point]_[*@3 p], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 src], +[@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 srect])&] +[s2;%% Mixes using alpha information Rect [%-*@3 srect] of Image [%-*@3 src] +into Point [%-*@3 p] of ImageBuffer [%-*@3 dest].&] +[s2;%% The alpha channel of [%-*@3 dest] is 255 (opaque).&] +[s3;%% &] +[s4; &] +[s5;:OverStraightOpaque`(Image`&`,Point`,const Image`&`,const Rect`&`): [@(0.0.255) voi +d]_[* OverStraightOpaque]([_^Image^ Image][@(0.0.255) `&]_[*@3 dest], +[_^Point^ Point]_[*@3 p], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 `_src], +[@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 srect])&] +[s2;%% Mixes using alpha information Rect [%-*@3 srect] of Image [%-*@3 src] +into Point [%-*@3 p] of Image [%-*@3 dest].&] +[s2;%% The alpha channel of [%-*@3 dest] is 255 (opaque).&] +[s3;%% &] +[s4; &] +[s5;:Crop`(const Image`&`,const Rect`&`): [_^Image^ Image]_[* Crop]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 rc])&] +[s2;%% Returns a subimage from [%-*@3 img] defined by Rect [%-*@3 rc].&] +[s3;%% &] +[s4; &] +[s5;:Crop`(const Image`&`,int`,int`,int`,int`): [_^Image^ Image]_[* Crop]([@(0.0.255) const +]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) int]_[*@3 x], +[@(0.0.255) int]_[*@3 y], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])&] +[s2;%% Returns a subimage from [%-*@3 img] defined by origin [%-*@3 x,] +[%-*@3 y], width [%-*@3 cx] and height [%-*@3 cy].&] +[s3;%% &] +[s4; &] +[s5;:ColorMask`(const Image`&`,Color`): [_^Image^ Image]_[* ColorMask]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 src], [_^Color^ Color]_[*@3 transparent])&] +[s2;%% Returns a new Image based on [%-*@3 src] replaced Color [%-*@3 transparent] +with RGBAZero().&] +[s3;%% &] +[s4; &] +[s5;:CanvasSize`(const Image`&`,int`,int`): [_^Image^ Image]_[* CanvasSize]([@(0.0.255) con +st]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) int]_[*@3 cx], +[@(0.0.255) int]_[*@3 cy])&] +[s2;%% [%-*@3 img] [%-*@3 cx] [%-*@3 cy].&] +[s3;%% &] +[s4; &] +[s5;:AssignAlpha`(const Image`&`,const Image`&`): [_^Image^ Image]_[* AssignAlpha]([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `& +]_[*@3 new`_alpha])&] +[s2;%% Returns a new Image based on [%-*@3 img] colors and [%-*@3 new`_alpha] +alpha.&] +[s2;%% Image size is the minimum of [%-*@3 img] and [%-*@3 new`_alpha].&] +[s3;%% &] +[s4; &] +[s5;:Equalight`(const Image`&`,int`): [_^Image^ Image]_[* Equalight]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 img], [@(0.0.255) int]_[*@3 thold]_`=_[@3 10])&] +[s2;%% [%-*@3 img] [%-*@3 thold].&] +[s3;%% &] +[s4; &] +[s5;:Grayscale`(const Image`&`): [_^Image^ Image]_[* Grayscale]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 img])&] +[s2;%% Returns a new Image including [%-*@3 img] converted to grayscale.&] +[s3;%% &] +[s4; &] +[s5;:Grayscale`(const Image`&`,int`): [_^Image^ Image]_[* Grayscale]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 img], [@(0.0.255) int]_[*@3 amount])&] +[s2;%% [%-*@3 img] [%-*@3 amount].&] +[s3;%% &] +[s4; &] +[s5;:Colorize`(const Image`&`,Color`,int`): [_^Image^ Image]_[* Colorize]([@(0.0.255) const +]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Color^ Color]_[*@3 color], +[@(0.0.255) int]_[*@3 alpha]_`=_[@3 100])&] +[s2;%% [%-*@3 img] [%-*@3 color] [%-*@3 alpha].&] +[s3;%% &] +[s4; &] +[s5;:Contrast`(const Image`&`,int`): [_^Image^ Image]_[* Contrast]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 img], [@(0.0.255) int]_[*@3 amount]_`=_[@3 256])&] +[s2;%% Returns a new Image with its contrast increased in [%-*@3 amount] +based on [%-*@3 img].&] +[s3;%% &] +[s4; &] +[s5;:Rescale`(const Image`&`,Size`,const Rect`&`,Gate2``): [_^Image^ Image]_ +[* Rescale]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 src], +[_^Size^ Size]_[*@3 sz], [@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[*@3 src`_rc], +[_^Gate2^ Gate2]<[@(0.0.255) int], [@(0.0.255) int]>_[*@3 progress]_`=_[@(0.0.255) false])&] +[s2; [%% Returns a new Image rescaled to Size ][*@3 sz][%% based on Rect +][*@3 src`_rc ][%% of Image ][*@3 src]&] +[s3;%% &] +[s4; &] +[s5;:Sharpen`(const Image`&`,int`): [_^Image^ Image]_[* Sharpen]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 img], [@(0.0.255) int]_[*@3 amount]_`=_[@3 100])&] +[s2;%% [%-*@3 img] [%-*@3 amount].&] +[s3;%% &] +[s4; &] +[s5;:Etched`(const Image`&`): [_^Image^ Image]_[* Etched]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `& +]_[*@3 img])&] +[s2;%% [%-*@3 img].&] +[s3;%% &] +[s4; &] +[s5;:SetColorKeepAlpha`(const Image`&`,Color`): [_^Image^ Image]_[* SetColorKeepAlpha]([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img], [_^Color^ Color]_[*@3 c])&] +[s2;%% Returns a new Image based on [%-*@3 img] alpha and [%-*@3 c] Color.&] +[s3;%% &] +[s4; &] +[s5;:RotateClockwise`(const Image`&`): [_^Image^ Image]_[* RotateClockwise]([@(0.0.255) con +st]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] +[s2;%% Returns a new[%-*@3 ]Image rotated 90º (clockwise) that is +based on [%-*@3 img].&] +[s3;%% &] +[s4; &] +[s5;:RotateAntiClockwise`(const Image`&`): [_^Image^ Image]_[* RotateAntiClockwise]([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] +[s2;%% Returns a new Image[%-*@3 ]rotated `-90º (anticlockwise) that +is based on [%-*@3 img].&] +[s3;%% &] +[s4; &] +[s5;:Rotate180`(const Image`&`): [_^Image^ Image]_[* Rotate180]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 orig])&] +[s2;%% Returns a new Image[%-*@3 ]rotated 180º that is based on [%-*@3 img].&] +[s3;%% &] +[s4; &] +[s5;:MirrorHorz`(const Image`&`): [_^Image^ Image]_[* MirrorHorz]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 img])&] +[s2;%% Returns a new Image that is a mirror of [%-*@3 img ]following +horizontal axis.&] +[s3;%% &] +[s4; &] +[s5;:MirrorVert`(const Image`&`): [_^Image^ Image]_[* MirrorVert]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 img])&] +[s2;%% Returns a new Image that is a mirror of [%-*@3 img ]following +vertical axis.&] +[s3;%% &] +[s4;%% &] +[s5;:Rotate`(const Image`&`,int`): [_^Image^ Image]_[* Rotate]([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[*@3 m], [@(0.0.255) int]_[*@3 angle])&] +[s2;%% Returns a new Image based on Image [%-*@3 m] rotated [%-*@3 angle] +by its center where the full rotation (2[%- π) ]is 3600.&] +[s3;%% &] +[s3; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/ImageOp$en-us.tpp b/uppsrc/Draw/src.tpp/ImageOp$en-us.tpp new file mode 100644 index 000000000..8c69e92de --- /dev/null +++ b/uppsrc/Draw/src.tpp/ImageOp$en-us.tpp @@ -0,0 +1,14 @@ +topic ""; +[ $$0,0#00000000000000000000000000000000:Default] +[H6;0 $$1,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$2,0#37138531426314131252341829483370:codeitem] +[l288;2 $$3,0#27521748481378242620020725143825:desc] +[0 $$4,0#96390100711032703541132217272105:end] +[{_}%EN-US +[s1;%- &] +[s2;:WithHotSpot`(const Image`&`,int`,int`):%- [_^Image^ Image]_[* WithHotSpot]([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[*@3 m], [@(0.0.255) int]_[*@3 x1], +[@(0.0.255) int]_[*@3 y1])&] +[s3; [%-*@3 m] [%-*@3 x1] [%-*@3 y1].&] +[s4; &] +[s0; ] \ No newline at end of file