From 2faa16dc266d4f4b606782efbdd1b81eedc7425e Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Wed, 31 May 2023 18:15:09 +0800 Subject: [PATCH] Update docs (18001) Signed-off-by: ester.zhou --- .../arkts-drawing-customization-on-canvas.md | 348 ++++++++++++++++++ .../ui/figures/2023022700701(1).jpg | Bin 0 -> 3332 bytes .../ui/figures/2023022701120(1).jpg | Bin 0 -> 4006 bytes .../ui/figures/2023022793003(1).jpg | Bin 0 -> 2632 bytes .../ui/figures/2023022793350(1).jpg | Bin 0 -> 2627 bytes .../ui/figures/2023022793719(1).jpg | Bin 0 -> 2198 bytes .../ui/figures/2023022794031(1).jpg | Bin 0 -> 2618 bytes .../ui/figures/2023022794521(1).jpg | Bin 0 -> 4016 bytes .../ui/figures/2023022795105(1).jpg | Bin 0 -> 3622 bytes .../ui/figures/2023032422159.jpg | Bin 0 -> 8740 bytes en/application-dev/ui/figures/drawimage.PNG | Bin 0 -> 24627 bytes .../OpenHarmony_3.2.10.7/changelog-web.md | 61 +++ .../OpenHarmony_4.0.2.2/changelog-web.md | 6 +- 13 files changed, 411 insertions(+), 4 deletions(-) create mode 100644 en/application-dev/ui/arkts-drawing-customization-on-canvas.md create mode 100644 en/application-dev/ui/figures/2023022700701(1).jpg create mode 100644 en/application-dev/ui/figures/2023022701120(1).jpg create mode 100644 en/application-dev/ui/figures/2023022793003(1).jpg create mode 100644 en/application-dev/ui/figures/2023022793350(1).jpg create mode 100644 en/application-dev/ui/figures/2023022793719(1).jpg create mode 100644 en/application-dev/ui/figures/2023022794031(1).jpg create mode 100644 en/application-dev/ui/figures/2023022794521(1).jpg create mode 100644 en/application-dev/ui/figures/2023022795105(1).jpg create mode 100644 en/application-dev/ui/figures/2023032422159.jpg create mode 100644 en/application-dev/ui/figures/drawimage.PNG diff --git a/en/application-dev/ui/arkts-drawing-customization-on-canvas.md b/en/application-dev/ui/arkts-drawing-customization-on-canvas.md new file mode 100644 index 0000000000..7e0e1f79da --- /dev/null +++ b/en/application-dev/ui/arkts-drawing-customization-on-canvas.md @@ -0,0 +1,348 @@ +# Drawing Custom Graphics Using the Canvas + + +**Canvas** provides a canvas component for drawing custom graphics. You can use the **CanvasRenderingContext2D** and **OffscreenCanvasRenderingContext2D** objects to draw graphics on the **Canvas** component. The drawing objects can be basic shapes, text, and images. + + +## Drawing Custom Graphics on the Canvas + +You can draw custom graphics on the canvas in any of the following ways: + + +- Use [CanvasRenderingContext2D](../reference/arkui-ts/ts-canvasrenderingcontext2d.md). + + ```ts + @Entry + @Component + struct CanvasExample1 { + // Configure the parameters of the CanvasRenderingContext2D object, including whether to enable anti-aliasing. The value true indicates that anti-aliasing is enabled. + private settings: RenderingContextSettings = new RenderingContextSettings(true) + // Create a CanvasRenderingContext2D object by calling CanvasRenderingContext2D object in Canvas. + private context: CanvasRenderingContext2D= new CanvasRenderingContext2D(this.settings) + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + // Invoke the CanvasRenderingContext2D object in Canvas. + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() =>{ + // You can draw content here. + this.context.strokeRect(50, 50, 200, 150); + }) + } + .width('100%') + .height('100%') + } + } + + ``` + + ![2023022793003(1)](figures/2023022793003(1).jpg) + +- Drawing offscreen onto a canvas is a process where content to draw onto the canvas is first drawn in the buffer, and then converted into a picture, and finally the picture is drawn on the canvas. This process increases the drawing efficiency. Specifically, the implementation is as follows: + 1. Use the **transferToImageBitmap** API to create an **ImageBitmap** object for the image that is recently rendered off the screen canvas. + 2. Use the **transferFromImageBitmap** API of the **CanvasRenderingContext2D** object to display the created **ImageBitmap** object. + + For details, see [OffscreenCanvasRenderingContext2D](../reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md). + + ```ts + @Entry + @Component + struct CanvasExample2 { + // Configure the parameters of the CanvasRenderingContext2D and OffscreenCanvasRenderingContext2D objects, including whether to enable anti-aliasing. The value true indicates that anti-aliasing is enabled. + private settings: RenderingContextSettings = new RenderingContextSettings(true) + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings) + // Create an OffscreenCanvasRenderingContext2D object. width indicates the width of the offscreen canvas, and height indicates the height of the offscreen canvas. + private offContext: OffscreenCanvasRenderingContext2D = new OffscreenCanvasRenderingContext2D(600, 600, this.settings) + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() =>{ + // You can draw content here. + this.offContext.strokeRect(50, 50, 200, 150); + // Display the image rendered by the offscreen drawing value on the common canvas. + let image = this.offContext.transferToImageBitmap(); + this.context.transferFromImageBitmap(image); + }) + } + .width('100%') + .height('100%') + } + } + + ``` + + ![2023022793003(1)](figures/2023022793003(1).jpg) + + >**NOTE** + > + >The APIs called for drawing on the canvas through the **CanvasRenderingContext2D** and **OffscreenCanvasRenderingContext2D** objects are the same. Unless otherwise specified, the value unit of the parameters in these APIs is vp. + +- Before loading the Lottie animation on the canvas, download the Lottie as follows: + + ```ts + import lottie from '@ohos/lottie' + ``` + + For details about the APIs, see [Lottie](../reference/arkui-ts/ts-components-canvas-lottie.md). + + >**NOTE** + > + >Before using Lottie for the first time, run the **ohpm install \@ohos/lottieETS** command in the Terminal window to download Lottie. + + +## Initializing the Canvas Component + +**onReady(event: () => void)** is the event callback when the **Canvas** component initialization is complete. After this event is called, the determined width and height of the **Canvas** component can be obtained. The **CanvasRenderingContext2D** and **OffscreenCanvasRenderingContext2D** objects can then be used to call related APIs to draw graphics. + +```ts +Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() => { + this.context.fillStyle = '#0097D4'; + this.context.fillRect(50, 50, 100, 100); + }) + +``` + +![2023022793350(1)](figures/2023022793350(1).jpg) + + +## Canvas Component Drawing Modes + +Two modes are available for drawing with the **Canvas** component: + +- After the **onReady()** callback of the **Canvas** component is invoked, use the **CanvasRenderingContext2D** and **OffscreenCanvasRenderingContext2D** objects to call related APIs for drawing. + + ```ts + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() =>{ + this.context.beginPath(); + this.context.moveTo(50, 50); + this.context.lineTo(280, 160); + this.context.stroke(); + }) + ``` + + ![2023022793719(1)](figures/2023022793719(1).jpg) + +- Define an individual **path2d** object to build an ideal path, and then call the **stroke** or **fill** API of the **CanvasRenderingContext2D** and **OffscreenCanvasRenderingContext2D** objects to draw the path. For details, see [Path2D](../reference/arkui-ts/ts-components-canvas-path2d.md). + + ```ts + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() =>{ + let region = new Path2D(); + region.arc(100, 75, 50, 0, 6.28); + this.context.stroke(region); + }) + ``` + + ![2023022794031(1)](figures/2023022794031(1).jpg) + + +## Common Usage of the Canvas Component + +**OffscreenCanvasRenderingContext2D** and **CanvasRenderingContext2D** provide a large number of attributes and methods, which can be used to draw text and graphics and process pixels. They are the core of the **Canvas** component. Common APIs include [fill](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#fill), [clip](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#clip), and [stroke](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#stroke). In addition, [fillStyle](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#fillstyle), [globalAlpha](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#globalalpha), [strokeStyle](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#strokestyle), and more attributes are provided to spruce up the graphics. This topic describes typical usage of the canvas. + +- Draw a basic shape. + + +You can draw a basic shape by calling APIs such as [arc](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#arc), [ellipse](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#ellipse), and [rect](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#rect). + + ```ts + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() =>{ + // Draw a rectangle. + this.context.beginPath(); + this.context.rect(100, 50, 100, 100); + this.context.stroke(); + // Draw a circle on the canvas. + this.context.beginPath(); + this.context.arc(150, 250, 50, 0, 6.28); + this.context.stroke(); + // Draw an oval on the canvas. + this.context.beginPath(); + this.context.ellipse(150, 450, 50, 100, Math.PI * 0.25, Math.PI * 0, Math.PI * 2); + this.context.stroke(); + }) + + ``` + +![2023022794521(1)](figures/2023022794521(1).jpg) + +- Draw text. + + You can use APIs such as [fillText](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#filltext) and [strokeText](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#stroketext) to draw text. + + ```ts + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() =>{ + // Draw filled text on the canvas. + this.context.font = '50px sans-serif'; + this.context.fillText("Hello World!", 50, 100); + // Draw a text stroke on the canvas. + this.context.font = '55px sans-serif'; + this.context.strokeText("Hello World!", 50, 150); + }) + ``` + + ![2023022795105(1)](figures/2023022795105(1).jpg) + +- Draw images and processes image pixel information. + + You can draw an image by calling APIs such as [drawImage](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#drawimage) and [putImageData](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#putimagedata). You can also process image pixel information by calling APIs such as [createImageData](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#createimagedata), [getPixelMap](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#getpixelmap), and [getImageData](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#getimagedata). + + ```ts + @Entry + @Component + struct GetImageData { + private settings: RenderingContextSettings = new RenderingContextSettings(true) + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings) + private offContext: OffscreenCanvasRenderingContext2D = new OffscreenCanvasRenderingContext2D(600, 600, this.settings) + private img:ImageBitmap = new ImageBitmap("/common/images/1234.png") + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() =>{ + // Use the drawImage API to draw an image in the area with the width and height of 130 starting from (0, 0). + this.offContext.drawImage(this.img,0,0,130,130); + // Use the getImageData API to obtain the image data with the width and height of 130 starting from (50, 50). + let imagedata = this.offContext.getImageData(50,50,130,130); + // Use the putImageData API to draw the obtained image data in the area starting from (150, 150). + this.offContext.putImageData(imagedata,150,150); + // Draw the offscreen drawing content to the canvas. + let image = this.offContext.transferToImageBitmap(); + this.context.transferFromImageBitmap(image); + }) + } + .width('100%') + .height('100%') + } + } + ``` + + ![drawimage](figures/drawimage.PNG) + +- Other usage + + **Canvas** also provides other usage. For example, regarding [CanvasGradient](../reference/arkui-ts/ts-components-canvas-canvasgradient.md), you can create a linear gradient with [createLinearGradient](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#createlineargradient) or create a radial gradient with [createRadialGradient](../reference/arkui-ts/ts-canvasrenderingcontext2d.md#createradialgradient), among others. + + ```ts + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() =>{ + // Create a CanvasGradient object with radial gradient colors. + let grad = this.context.createRadialGradient(200,200,50, 200,200,200) + // Set the gradient color stop for the CanvasGradient object, including the offset and colors. + grad.addColorStop(0.0, '#E87361'); + grad.addColorStop(0.5, '#FFFFF0'); + grad.addColorStop(1.0, '#BDDB69'); + // Fill the rectangle with the CanvasGradient object. + this.context.fillStyle = grad; + this.context.fillRect(0, 0, 400, 400); + }) + ``` + + ![2023022700701(1)](figures/2023022700701(1).jpg) + + +## Example Scenario + +- Draw a basic shape. + + ```ts + @Entry + @Component + struct ClearRect { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() =>{ + // Set the fill color to blue. + this.context.fillStyle = '#0097D4'; + // Take (50, 50) as the upper left corner and draw a rectangle with the width and height of 200. + this.context.fillRect(50,50,200,200); + // Use (70, 70) as the upper left corner and clear the area with the width of 150 and height of 100. + this.context.clearRect(70,70,150,100); + }) + } + .width('100%') + .height('100%') + } + } + + ``` + + ![2023022701120(1)](figures/2023022701120(1).jpg) + +- Draw an irregular shape. + + ```ts + @Entry + @Component + struct Path2d { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + + build() { + Row() { + Column() { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#F5DC62') + .onReady(() =>{ + // Use the Path2D API to create a pentagon. + let path = new Path2D(); + path.moveTo(150, 50); + path.lineTo(50, 150); + path.lineTo(100, 250); + path.lineTo(200, 250); + path.lineTo(250, 150); + path.closePath(); + // Set the fill color to blue. + this.context.fillStyle = '#0097D4'; + // Draw the pentagon described by Path2D in the canvas in fill mode. + this.context.fill(path); + }) + } + .width('100%') + } + .height('100%') + } + } + ``` + + ![2023032422159](figures/2023032422159.jpg) + diff --git a/en/application-dev/ui/figures/2023022700701(1).jpg b/en/application-dev/ui/figures/2023022700701(1).jpg new file mode 100644 index 0000000000000000000000000000000000000000..53a5dba3a495af6562da8e2bee506c88b0c7d7ba GIT binary patch literal 3332 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 N)MsxFRSv+~{sA$$vP}R0 literal 0 HcmV?d00001 diff --git a/en/application-dev/ui/figures/2023022793003(1).jpg b/en/application-dev/ui/figures/2023022793003(1).jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f89a57ecd79bf7f46cc19eb49acf9dbbaaa1edd GIT binary patch literal 2632 zcmdT^X;4#F6uvJjAutjNI~dvIK@|j3lp>onB6N@~5ejrbs}`)O0#;nc2}0EpihxR~ z6o(R)1X@IE5YWMhS{E#3A_^GjAVs98fUIE&dA*^9L_2j_XZpkY=FB^H`|kP9z30Q) zu}45JV7>o(fFKBng&)8=fG^M@k;o*X7MV<@P_(pl=(;*os*cHG{Y7*OQ^pbtQ*-mB zHjZ{nt(IGxo1?4km#=hYGMNlJH;*+gYaLfHT~r_lg+kGx>KNj-hWUBgeT8~g*p*qlw_5g$f=ymj05PvYWtB<=ZpZ}PtV2hzSca`f1j>HHHXPvw4{ z_s!{iL2*fGnNU<-@#6(?^~IXnx=Yut-}vd~t=o4R@3q{2(Aw7iP}coh&*R=FeZTiV z9Ud7S8=sI*PED(LAprj;tp#SU@S;IpI06ArAgg#GxMXN}8i8o(Oj_&{Lf)L9Z{>1W zi@q+W=zIgkdR6EPgDr_tZ9^Mox9zZs+8ncgM=bS?m@N=f^O6A_JOVEdPXk_HJaJZoKy%%`)~^a9(GsM24p0T`=6@@a>vn*{ zdaAQ4iDl75PeBFQ*(Cp~7X3iX@f!HZUCA5Z4UJ$R(`n-D84P$$NaRzzn}zQ@Cth+8 zY7S*-F7^y>r|#hdX$~=Dmy#72kYS*!7XzklF|jM89IxsDO&9har%9!Ee+zH&T24OSd8!=Eg6EmZb z^!RCpbNr1WD114{=&Ex@XbIWcI_HB8I6nH_oE6mDi+lSy77dw$am96lY@*M83@k~) zK%1+QR@VuRKjC{D=yoag2Vo$(V~YJi?FZNBx3A#!{IY2J ziKMYi#9eTU2AK<3Dm+cAIs}h2VvOIBPFi$1eE7m0ye1&r|~ zUT$D8d@b|7Z)e;BmI_b942W{YzGz{dD7Jv6% zg?pM=r_?VAX7T8da;*?1oU5qVq4q^l>CX)%!+qr0q?q0?w(Ei$EH{No$|kC?UNv{A{MZ~IMN+1bY!Ym($r6IQ~i&RXO3EFS|7 z`4=jy13kE#Ny__r899AU!q!q{tGcjT;yY=HeBo@Ry1Zwi)P)`J^R`BZ!ikG&{mB~O zs+GwwHd;^)Wg}igJT%dz+ll}0c8ywK^JFqjnL9elZjs&W-Zb5Q(hLypHZvmQ-P7|b z7fQszoi{1Zm~Bv01O)B&VbMd4p&o#+yi(VKdWYg#=lUjkGBXs)f<1r}gNE>_WgJQ6 zqk`^Ol~hE)l5l)w@G=#?!`H}_=H$Glz3%@vy?eU>ga#%|Zc$M*mp&lomd4h~>^tH* sSgAd6LT)kFkeVqtb1_pK;pocWD|3~;@pM5w+Od&iEHn_g^00@00GT$;j{pDw literal 0 HcmV?d00001 diff --git a/en/application-dev/ui/figures/2023022793350(1).jpg b/en/application-dev/ui/figures/2023022793350(1).jpg new file mode 100644 index 0000000000000000000000000000000000000000..74205f7d264efc72ccac31d2aeb9af7da0255d55 GIT binary patch literal 2627 zcmcIk4OmlE7(SP6jKK)efr7vS)D6MEfeI)aNJBAo3{dx+I!-LN7^6_NNp6u?y(l3HgC={w0b&R?B7?z`*BkNy3_%&c@ z0)7K`35XLgvP1}$2z~?50YFGFTYbXM9>j=1BpH)UD5hp`LjDL~gb)ZuL;{IKB*NKA za2yaVNh2Mn`5BMmuOd6e(pbp{GfbT4ohdc%&bnyef8- z6D!$-Hs@eQZVAQNJ-FK{YD^ZSvUX6fCK;YpKECB~7 zx0Ex|>(UugU7Ukh&fV!A)7N3c&Po-8aA{Ol(n5$a=4DW+^jM=h#uRoC^fRBqN$u-l zKc8D~%*z%rq&3{pD{a`~UI=w@d|%k9X?s4dhny3%ASAsV^=2jUTDdd;mw`Jx?R&bA z{ugnEXZwaPo#HslPy4)Am$I&lo4hCX{6j*_ zj)sDbZf02OrmZqgUQBVTqDiO2hLOVC^)3!VU2sq>8*t#LYC?2Lk|JgG@SM}9`;_M_EKf+NC#q}i_Mj+i^dAfa`ik=fblbma#E|+u3 z@GPv{p!}JH2{;I0sI!XVuV9;$EcDXG@{Nx@{hQAyw7dfk(l9}FpD9y#_1552A;tvH z!swS1IB=ZBQ*{V_3d_M13uo!(#0!)SoTHL(tL|?iHOnJX)efU|_PkIUpSv?w>Boho zVHm-4Z)u~w53%>j!^}%M0(SMNYW(zxy$`o=0hPtlO5G!gy(DVrB-Q&zJc-s6hqQQ# z9*BFjFmp*BdjV63fuXo4Mk^NG)?H@wTFG}8r7gn2ffHhFJns)z8EGeDG!Cr460yto z;$UA$EtDtHE-8o)3)e705B71E@7LE_ZRzHZECsMugY=mNUxScbSa zZSfT8;5*DG*%}=93NhDCi*zX1$3x-vs7Wy@4+rNeHD!tSCC;~tTNoQ~@Im?@rYwo1 zl;NQ4R9kg!GukZGs}xpF*GmQr!%AQGqHO23UHO~uI@}oc(RsMZ0qT%M{VqeQ6*gOZ zBB@fc{W11LlyeIvul8@bZs0dF@9ob^snE5euWOLfh|1RJqOQb*U5`b3HYB=t?1+4_ z%_k`Dt&Y!cYN7r7V+u*f7d&0^06Oq{@%1ZFSU>CRgRJn(4BF#_g#BUEt)CyxSzU>P z3)49&@;w|h9l?Pq=Y^IMbCuy>g&evvf8gXgRqouuruzw;{s3qcUv;rs(bPQGuo02V zrOT60Xr68yEMekcmd1jitB~TLjlLZRyH;qJFSK0im?G^a2@cq@-{|dS^j0*v1qThb z0xjV&baEBCmu}cdETf@0wK#w_F4Zm-X}Y>+UoD?64GAh(d;ZemWub>wtppYQ65c6c zQH*T*$<@r8{QR`A$yKY9Q$^&Dpf4i=AHCpAy-Q!|&KEpm=%0VWulAH-p}!8l+6acV z`8xdS+WngthS%21_8m^?x@}e;+QaPs(o3G%aMr&dk6Y{seemfZqTB literal 0 HcmV?d00001 diff --git a/en/application-dev/ui/figures/2023022793719(1).jpg b/en/application-dev/ui/figures/2023022793719(1).jpg new file mode 100644 index 0000000000000000000000000000000000000000..328ea27be52901f0aa1e2a77764840c7e14f3e80 GIT binary patch literal 2198 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<HEAm;@P_1sVSzVUTBFU}Ocl7UW4 zD%dK(z{JSR%*4XX%F4n5R9y>{XJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^s zlZu)+xx~aJB&Af<)HO7@(s#)lOnKGb1qam<1W^8NL?z`J2qNTh@H#Vmxp0l?^GsW*OD`iUcrD zewA_Z>!L2b14gwkPJT5BbiKjmzjCqqm5Z+836gfpdge!IEMQi@)-ylYRiweF7OWU3 zu_fi#MOOu$`N3}fD;IU)RLKCe#Fq1Tu+MURuNCjqOum`~RL#=l(OA^wAQHsH@0Xdu zu&7IeC=4_q*Rm?qz0h#^%0)nL1Q`HzGA-Q1arAA>f#Z`zQaQiJ&7a1;HW1f98LD*MA26s-3R!=7rH4u9Qw>Ud-lXBt8Hi`l4=c z?aTd{^X_-gC}-4J*?Ca8Ew0snA^U{7t-9X6dB9-P zWC(N>!N9@OmzvGltF?H?jLTOpI=;$Sf=wkO%e4vT4$du9_`ON<*5QvbS0eXpd&PRC zZZWs|)9?N-e_TDKHD#A!L>u>tJR{}$nRTBG4(nf$bM*~4pUZp9=E%wTT?Zacf8nmQ z@OF7#U6{Dxe}>Wx>+I#)KOVm}ck&Irm_-ZP-bvnAG-*?xPoCL^Keo2VMQyP;nkdJ@ zyvQhW?PH8WWPpK8^Bwtss^)iE{Ccl${CnkZXaDoL=3)ND<$vm}cDe>lj^aA8Ui3-O z$)~axeXpOMkl25Dx}PE!!7Bw1Icg+%44?fryZCMPC*td|$5B6Y83!R{#Gd0Owj(H~;_u literal 0 HcmV?d00001 diff --git a/en/application-dev/ui/figures/2023022794031(1).jpg b/en/application-dev/ui/figures/2023022794031(1).jpg new file mode 100644 index 0000000000000000000000000000000000000000..67104a5b1dfc638e56e7ce322d68e555b009c8a7 GIT binary patch literal 2618 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 SOwbtQ8ZKfDXB*VM+xJhc%Q>_F literal 0 HcmV?d00001 diff --git a/en/application-dev/ui/figures/2023032422159.jpg b/en/application-dev/ui/figures/2023032422159.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f9fb080dee7e023179932a79b1d5421f0d91824e GIT binary patch literal 8740 zcmds62{@Ep-@nH;wn*73V+xfPNtQ4eEl5Iy5k)AGr|i3CLQ&EvltQNL+9u&4V#pSS zkcTMSWEty>b;gXD?;boY&-Z@s`#gQ`b-mB`-81L9=A3ii=luTX{{4Ud|2f0zVD$p4 z59=H10}u!VI0b$HRv#dv7vSm)0LI3^b^ri)!M-&BC-@5jewHp)7jOXJfI!&am5Y;` zlYQ}UadC1(d7w~s;pG$HIG zeP&Px&$TjpLU~2^-+Gu^!6&P1P8M_YYUUT0Q|a4GVVkyO*`G5k?58aIYS=fsIsrjW z2>9|iMF1qQXhqBJ((gH^Mn}=+&;?mH9iz<(J8zVI5ZH&&)R;@}8V5U}SvQ?j&a(jZ zH1~oH7qeG!`fkYa9M{**Ud8p<0UBxWA(iFlPH1G*(i*^l z?VF|_C=N=3of+eXG^P*OEkL^-M=~;AnvCzo6wHtr1P+qHU;&!^gu6xR=}ok1Nj7v{ zmtDw4m*sKP=ttKJ#7rkDF}=T=A4_09LLwXE+zTKWB}|izjcL;~`$7A6zFW4b(ZQt% zbwMOi-g1xrOOUlit zTw1@SJ2{vROT#&JMhAa=Mw&g^uAd)lX<7(o_X-wp+DnAHzhhZ4>vt^wOVt0vM5*9< zd^KjtR)O#B|K9w*Z;J`>_zrK;?{I4nMcQGAxf%>;L{ZAA!1YEY`RR13D3UVo+cMu4P@}ffl%J6Oe=VlIWthjHDLt!keltY$79wcf#qqR3U|6-6H4f z{*Dn@y0w}=bz7b<=5rsS%K-SI=UV++yi z>Z0~7JQlKiZs37Af`*28zQ?%0A(eO+W%Q)Xj*{cN(=)W^d{O&GKU;g$?}L@kY59;9 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 literal 0 HcmV?d00001 diff --git a/en/application-dev/ui/figures/drawimage.PNG b/en/application-dev/ui/figures/drawimage.PNG new file mode 100644 index 0000000000000000000000000000000000000000..f5061126ce9c48cea3cffcef05ecf5ea994735bd GIT binary patch literal 24627 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

Va(o6k+`&Qb?X?Ayg>HF0tpE`8=qMiqMkXz z(eKaY%-}_R_md(P+zRsGz0@l?&7ub`RO5h)94vax%lYzmFl^;SY5{07gcZ)k(V;x) zzrty8N3zI)TJGqT*Lm%6iQjB!-{v6(MgR<9Oj(h#bk3`JeUet}ys5cfePi(eAqD*( zYS&7WSG#fZkoTUsXE(pUJE_rB!Upe^60a`B1i~9-{fPoQ7F|2vY-t`Y-4NXS-}9;H zZ@_I#KfznINzV~2IFK+N)*Y`MVH#Y>yHD{a;VlN_ouM|Ct%d>i&g%h{`i(n}CSQ*~ zxSytcy_%HX((#>Qi|=(kz~5iaTrUq~FLRf^{_by5qrU_9kw)3#52b7ihc!1nNTND1 zUlN~ga&Zo#@vIh(Y~3`03m;|4bt5nRDPNy%r%nu3*YV# zx?&V35itFJNbE&jw9!yn1Z^>60;yi?!-omC-9O^;2wggqV5x@)5s|*X;I4tYp0AKK_mmqyKKUDvro^a8wC? z0T&0H`AqTp%8_9Le+<1iIuMNVPvtx9tE1>#!NS%52=G74eIl%W!49w8s6O3=d=$03 z3!=&iCCszlsWcsm%e)%1Zmey-j$ZoHpN+DoDmMKMT??eQrg(D`cj^9jPZodeKCTE# zp(y`jd^q|{u;ND+T`okK?O0|vB)Us%YUjishvbhdam4`m~bF&XBN+^TQb^_u4? zQVvyB->r$o;@^{JoNJBGel5z_H*Zwnx0uI$DO@RczsPvfT%(<Uujj0Q~ZOW@+chUL_^3#`}pTD`SlP|G@aZ^qC zmSCxHH2fF{H@D3s=+=COuYF(|89z8+DE>>`5w`cZsH;$I+xj6fxy9bK&eHo3?auCX ztrxZS0vP<$6?;kCO4zn-kFmSxiTONOX|dM2_BrfK1nT~kXRx9LK-lmk#a3Pg&z>># zkpI_&{^6R>IX`+t2IzqIQRYx-2v%5sAslpgCXrvW2fqrnEKL-(iE=%rRbQfEj(L9$ zYy8BsfoA+Ns3Y2Lxz&uy8%WUh7GgTydh(IY&gQov&(-mX0&?&E^~0#}N`Mts-aaL| z`-Ydc{WDsfWDT$^sz;g|nJ3jRvVD(oY&jGCB-_^8K~C$?M%@3q()|Ur4i*S2nrI40 zt3E2CcF|$8nqvm#PfzW3j747dbtHUX&&0x8Op@3Crr5lvn8!CRxy}E1;q+HzqX$}U zKK>;vI)4!3aE3rc$CocxkUuILwx(|E?t3}xPBzGk>|3r;=9<=hDIl!OgLBW14^xU` z7m+W#+8gH|+1KZ3xeh6Y|MFR9+zy3OPJN?1pS#e^&%cY-|9j>W=o);H!3I=1F; zy2%gk%L`m2ItU-q(yO*!I@a(arUt(I? z{ynF6eH16G+3SZgEx)!%SarFW5$;D(Lu`gvc_U|>4%qn>zxE#YDc0;fpeH2Leeqt3 z^&^vbW@jCX^}9#;uR>yF`wz`ntPgh3EQ_YsA>&9wph1Wk`##zbrEFET$2%1hMdZEH z*H1IF9`Au}FArMOKm!3k>g?3co(xX(>bE`B3jS+UjqHEsx25OQFySWZpoor7&?Rj1!>ShKsts7>5id>4rw^^edqjk{(^m7 z@7{a8Yp>^io2II!$ur_spZ0dVNMrDQp%-{j zU^!DToY#MhlczXK3Ke>xvt$y_w4b_qz+-mjTg$a|E5Clja6*>ib~|xUec7Hq?fKWn z(fh#fI5ba1N+kE%xaMx2G}*)EH^)+QV!chv=g2c*@_+?5UB4ZNa?s_6r#T!gr?pBh zH%Ub&(=x}OFveo>fsmFL<_rDbzL2uz$TKQP-I!WoHzUc!*{^B^^?KTM+rhp0T*tBb zlzNU&vTZUZfo+a2kf}3`Q1#(Ous;mzbil6Cx~FmwK-Ou^lrQS7$Z@^)MPfkbDcrir^-@*KzS)7ra72~UWPu@D-e_}}go&N7yd+9BN=9{vw#QFR&=$GPM;UBAR zZ>CxrK345DS61ywfX)?a&Uip4kF#ziIyY)btG5R>7qSDF)4j>i3+@7N)r#+(UfCD7 zw{ieR{0E{OA zzGxm&-~0dm0(;ia{u>%1%-^`sAeIZnYBb=%{}zPd2TzT5g`g8ltq)j+Q4INGV+77uP>_CcYBs_j~Hbo zd)ywCyt&Kt4^LqVQe<2?g)J#SjIL*6bU8TQ9P`ewi@KgEqX3U?rJ=jDm&?lZ$m7Hi zsZMq1#dFy+*DdHj=~6vygsFdV=Wi?lfzMM44A2*s+C>}wPTtTT@aJkR$_b+DQf+qZ zvx=)!DA>!{j0Dcg5LHwySg|d`!K7yIS@A6jrelhxwSmJ+a9hr5nGUndOxCh>HM+;w z|9nWJT3^Q}by-Diih5qQq${7Z$_LP^r%@ef=t3_UWt+J{{z-Opt!Ju~Yw2{WKkfiF zmJN4Tho=p6Fh2h6q4~C!6L8u2{_>%pe=9RRNcCB-`lNR-y#+&QdEW9J+2+9&sGV6j zac#4SUa|vokvL~_uy#1(_l{o7Z@h;WDdFASzvA`-+0=&SjhYTRocAEvd|h>bwRs!& zwAB9SW7w5+Gk{{c1#X}V*iZ|Pwe3CWU63quf?>xH8Tsi2Y})OH<;|~z0P25!Bm{EJ zc&wATKZy?v$&r^zb3dXrl9$@r;Gc_xLPn6QO>24PJ);TLXCuOnV#`(wx#!hs<%=GA zHP+`=v*Irj+EEcQUaH+3sBgz8eWd#KIlA%F5JNf}x6g1qpYuWEmV6yx58D9k zH6e5>rrR7+&~rmdvp@1qDqk)6N<})PQ!bbMLSM|q)nGOE`c=;-Y0kf6e ztGCIuoi;m`+-djdkS%cnj#8l{?AqdUX-ng+g8tPs%#hR>b`@b zaLZI(d_v|*s$BLI@1aLm3!UNNu7p%U0fV5yi=#CB6A^(0ZKk)FD>vQ7Bi1za z5w_KpN)T6i3}>f?)G3kyAJ73DFh(Zye}VtL;%0;C~ z%$+yQpkW%hrq@6~=~K@;d&b%;R(G|2n-#|bLBy5SSMa>^;d+gsntxjaRlw%@UmV@pYAQ|6Ke1Lu z@D@vs%=EqXx-M~`Uzahe%EVdKWGwuWo5ZvY6$-EQrqWM4C|1Kl-Kr>%g&kEo3^2>w zz+`IAP{?_W%) z@w&7X8GoO0i+hH0hQOR4kHe5T2g ziZ93MZ=WKNg{*K2miN(*zr~48fAhQic)Jmt--}poc)zm~*MQ%DgEls^o**tI&9uFV zm|Dn(rh8a7fmt)%V!C{SdbWw=i;ZLFv|iR|lQ+{w{ee7YOw!h(h5&KmJ3i-G@YRYt zbHlM~8bs$E5G~=x8v)jfI{I$FUtxt4@!HGO^2DAfYc_av{&h?ERCaT2du38`6lA3H z*W)^DRcw#E2Zu8n8-_M5RI=i)1j!M80vGajyF=sRVr8yH4?t z0Qu;^q%9rpmN-?lxs#%kSH>&Hib~ZnM_; znOdSa6vNHAs2^RQbo?Emizzad@fq04z>M%aS38o$W{&m+U^vnC?EG{3uTSPxc7+W1 zbFCs1p+scA?e^ILwLgbu)=~f^3PS`p{@ll#w#IaKZ7`8AJ5lce@Sk}5HJ7HWW2e^E z(OO`G&l9|ayq*F-niP9nxnaGb_XeGr?)dtYdtzpF)naOQ#YM?^gi7y5jf!tQjVqwQ5*;Qd3 zN7^m9vef*}AUxGw%PfVR`ckG}@G(!9pG#N~RY5cr8uR=u(YCTkPWMK@Ch)6=ux1c< zf3mQs3MlA#?U^d(aNXH#gyJXg-^40l~W5n^I$=k?np!f z1NrRbheQ3Ag~&;BV?_fVjPbJd)}=Eq=taL*X4Y`*Qtqwxl1x0glI zaC5-JBHpw%h2ExuT~kflZOtj#5GD~Y7(}rvHJw2d*s8~kBu7e6}#z+<`yDHrxVQwWe&^3B~5w8oTO3E#aicI9+VZ0TA^AZ7W7p%haNeXSya_(*8)VxeKxZN=lw1 z3eDj${hWFrM_F_gWg5#n3;CwWcuQr*Rbq(c5j}60`ixtWiDn1$Z}=XPye_fc7PzRW z!OYvQvcjFz7LZoxn<@l;dlqTEJ{9+F5dM|ijh%otqSl|f&+oGWQW(i-d!p2=F{_k6 zRPnxMX3z={8&0uH4oX!E^^T*d&R{>)p*hk9islBS@8iur| zb@}+kqAj{6G3S$_LLCyhRWkNck~=S_wa;M_b+YQA7dZh>wB;8>@+tu5&{w~n^eG71 zu%yXc(v5PVGQzjCSni(ZgjIZ>@b=ZbNlC??9Evwf6|0G$r|jG?W1T0kee)vAnT%}Y z2#7PR11mEN*F=M!)XWy3P{G~mpYCYLJGMSa4F}h>3HS0=!cZI1cvjKlx}fY#^c@k& z`BAE3x>4&10Wt?>8H!_#sQFSwB;rLg+=p=2?zH12ABw-TCldnqy;sWU&a5|SdcQ-j&v(nkEituN#%GYflpyA^YL8xu!T+Z=z~)<5FDy^x z*>V2x;AT;1P1Qz>&IvWi7dwREDR_igu#EbvFI|n^7ct#*dq=P_$==W^l+i*uP?ko^ zTB+N;p5lYj<;3pe?KDS(G0Bw`d{kWa6=qsAjp${;2N4c*9S}$y`2mxd|D~6lFQem< z$**g9IAG1P=cz|A*iDIV2a=Sp=v&6~E;*yYXbxw+3Hz$3U+If`-dU=dZ=o`kC1XX4 ztD&yOobXhu$TDOS4B!>m?o6D2Wi-6bm1cg2R2AS*%l=2bn|!j+&Uf+?IqQ@rj*<2Q zECJplrdRT9+>DziN#+;3I8*ma1VT;*smozan}livPMC&g2v;s<$TP?768V&Ck`*Ub zXW+40Aa+@$#o|~@qG?hJI(hcB-S2f0nW&qx4n|-ENQo%*KObPeW*4n?9A?`+Kw&ZZN%d@9F{4%*E<=rb;rxyCV0}S0 z&-UIrh=s;qrDqz^l_BonQA3F1^CM5kZ}g3_V$lNcUWlnAgt<4-r0|HV99RkyWv^ga zP(BQV`M%pD7kklIRGm{-_B!vjCIp{6p(Oc5KlU9Lw->-0-dy^ak_u+##q18j2m2t) znfpOE*1cwbu#zgJ^_S9?f4V$A7`~D|t5R3f1ALi{vK(3-hxY=+Al?F^87r0wn=Y;b z>+9e=^jm+d`-e)%nq>go$LJarIXI%GHJNk7Wm)A3-caKkB4dkCIBl`p&MtTTDU!L) z|7r)K{_wH7A3LJ|%)N}bG20*XWPFp{Y;%L_hWwIi`)qAGd z$tlCG9P+-NqHmT5QD`u9C(A&qf*c1FN%e$n{gIM@h0J=;$Ga5_L0^dJ;X4EZ%*Opkx_)n7w1@^A3IpYfXSi?nK6{=|S3*ax=1hG_zo@b-%E6r+a zZ=4iG932&8s>Wk;kC*~UI;;VUq5Pd&nUY>8^sg!?Im6P9-d7kb&R~NE__6@ihQRA- zn}twYAi7T7p5s^<3Wr;tDnizqkg70V(6_E_^LY(NjC3Zd0x6T&DQI z{>q|GRajVRbF#pCk>c7wL8rZQNp15}IvuLDbidF4mEDbwF$%bukXQll0QwM<2%xFd zcJ&^%+}loS*CjkoGSCiLeegkp2$(WlS&`aNhU90`>*C9(va=>02CQD%BaB5(XGj3n znMt*FwYW1~JovhJ>*)skE=6>g#h#N{BnZcfCYy*4FmfCY0X#wu%}a$TyJtOOS|sC? zS>=LVjqq|djb$t@dR1&^hVsz#$64IYW3~C~N}I;1os#|5!-?CfLZ&MoBzMU z$gmemU95BmN!>U7W)N$XRpwP^h)-q&v-nkQaMDUFZpbg~0Cw{AF#7m%S(#WN} z^0o5)ZRxvGdJV$b{%(!@qz-q1V^n`}(O0mVa^QnwiQ?3yFf)}l3pmQkhd`4b$@f z;3oy;`s<$Xq(=2wX=(Cv+x)f$5sA-J>Kd}6W+It8Flt5y4{Qnu_jjI07o(pJG5-qd z@Q%+d)M$M0*havxR`b z+GasN%?7fHf>VK}&K%c{5Je zJSxbXBlANM(y}TbXu5n`Z?2J=`02IZxh&W>)62Y*mCD2>iisq$A#fWk(;U&)?{Flc zo@WgwQm~*&?yq}|);H~~c@a??l%qL#UTihE&1>>sS!2$OwG}=7z{#sDV({L z??+o7Ti!e|qO)l$-44$-#6e;DK|JD#?`Sjtk+XcVh>C?R z=R;mwELzzt`!+D%Po4~q%<^XQTjl4M|MT(8hpwTCr=>y&8LPuqC~x=?lBrQ;BkzNq z$1+^r`I6vG(5mZvj*8fE7n7^AB1AIUr8%@@nDTMO;V zdQOJ1lb|VyXiZQwC%>}6H0mPx@LG)bzMHhuMDLTt(pPR0$kc?C)OByAoIbN$fmtH3 z9MDJcJy_}C+{9M;SYDsQyAHVTzRp@g^P;Iad%;Jg=XcK+Qk;AztHs`zbiFJoeY9UF zo%(^2MFfC%1n$2v$EU}&zCmtgU7Y7iaw3Ug=Mz3bdDs9|OqZ(HLMczYyn3LCXlzjD zCzQ9)pPj^<^!Q|2!f%+dWk8I~*(ah@?GhJBT%Y2v{1WZq0O%e%KF_NWjr|U@r%)PHno=FOnU~9e9m$^U+GKUA-Od(<&4TwwocfhuGfD z<=x@ZSPPGT=+YnSWS)~VOVP8iK5Ue;Ja6-NDZ8`LWTc zLjTQcxZ_9WUsX&5%6eYk3Rm1SlD@^u99(#_8xSN5XpFpWc#T^ppf30{Wgb6w=iy`y z`9y(5U*eM#%>?&Q+R;8BxlnGQeUi~`(Y#_g71?y!V;gmnXa@=U-23)x*T2IWZQC_& z$LKIX&troYTsE*NRZ8P*3M_))HLXLxx{*P9^14xJZP&-)vZ{|ZxPgu8*jO5mwUv59 zA{tA1Js&)Yece<)Q66p9_R?FXs-63=*wg!vv1Do@CImv@IPy=%95kYNIMI zeh2FX{2&Q;>7(~eN&M^}>#sz=s$r2-p&E>WgJ~vuiyg6nxV&$jT`9FTh}h|I8(2Fw zCRqmIoO47F7T?pjBy{j-!8-(yj75%EHX=Go(WkaQTVbqQpe;rh9|LspCSDyYEErbW z>>TPn{*stdBq17I`z$Bp(;gk+zjJ(v7C~|r`+EwK!TV1t_e&!}g`^@C108>WK-;{J z?Kc}*VER!UUQM!U+Xe#7o-+<090+6_=jb#WvyB#C=5^6*e*`YpD*G|ApOdI{}oqV?fS&dKS`Kt@Lxk1t(#_{YNXa;nJ+yZ1gm zq_H$9eVu{$9%n$^`rc48VOMJ7tS~OGkFiWPtyKlv)MBi}Y;2NhUDrgmVCmaWkBDef zBim$>N5(Q?!Er~TOEg!45t^xkBQo9HbkziuB z{->Y^f1gDau&#*$-09CJcyXGwRxiGJJg2f%A7pNR$10ZaH1FW`;s5H%g19%Ap1_m@ zJ0By~cm