From 29c1b813e0ed1ad126282fc1844f553fa80daec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E5=93=B2=E9=94=90?= Date: Tue, 9 Dec 2025 17:50:52 +0800 Subject: [PATCH] code homology MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 蔡哲锐 --- ArkGraphics2D/Drawing/ArkTSDrawing/.gitignore | 12 + .../Drawing/ArkTSDrawing/AppScope/app.json5 | 24 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes ArkGraphics2D/Drawing/ArkTSDrawing/LICENSE | 78 + ArkGraphics2D/Drawing/ArkTSDrawing/README.md | 68 + .../Drawing/ArkTSDrawing/build-profile.json5 | 42 + .../Drawing/ArkTSDrawing/code-linter.json5 | 20 + .../Drawing/ArkTSDrawing/entry/.gitignore | 6 + .../ArkTSDrawing/entry/build-profile.json5 | 42 + .../Drawing/ArkTSDrawing/entry/hvigorfile.ts | 20 + .../ArkTSDrawing/entry/obfuscation-rules.txt | 23 + .../ArkTSDrawing/entry/oh-package.json5 | 24 + .../entry/src/main/ets/common/Logger.ts | 52 + .../src/main/ets/common/MyNodeController.ets | 61 + .../src/main/ets/common/PathRenderNode.ets | 85 + .../src/main/ets/common/RectRenderNode.ets | 41 + .../src/main/ets/common/TextRenderNode.ets | 38 + .../main/ets/entryability/EntryAbility.ets | 56 + .../entrybackupability/EntryBackupAbility.ets | 26 + .../entry/src/main/ets/pages/Index.ets | 93 + .../ArkTSDrawing/entry/src/main/module.json5 | 65 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 16 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 16 + .../main/resources/zh_CN/element/string.json | 16 + .../entry/src/mock/mock-config.json5 | 16 + .../ohosTest/ets/test/DrawingAbility.test.ets | 125 ++ .../entry/src/ohosTest/ets/test/List.test.ets | 19 + .../entry/src/ohosTest/module.json5 | 26 + .../ArkTSDrawing/entry/src/test/List.test.ets | 19 + .../entry/src/test/LocalUnit.test.ets | 47 + .../ArkTSDrawing/hvigor/hvigor-config.json5 | 36 + .../Drawing/ArkTSDrawing/hvigorfile.ts | 6 + .../ArkTSDrawing/oh-package-lock.json5 | 28 + .../Drawing/ArkTSDrawing/oh-package.json5 | 10 + .../Drawing/ArkTSDrawing/ohosTest.md | 11 + .../Drawing/ArkTSDrawing/screenshot/path.png | Bin 0 -> 132620 bytes .../Drawing/ArkTSDrawing/screenshot/rect.png | Bin 0 -> 81012 bytes .../Drawing/ArkTSDrawing/screenshot/text.png | Bin 0 -> 100472 bytes .../Drawing/ArkTSGraphicsDraw/.gitignore | 12 + .../ArkTSGraphicsDraw/AppScope/app.json5 | 25 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes .../Drawing/ArkTSGraphicsDraw/LICENSE | 78 + .../Drawing/ArkTSGraphicsDraw/README.md | 97 + .../ArkTSGraphicsDraw/build-profile.json5 | 42 + .../ArkTSGraphicsDraw/code-linter.json5 | 20 + .../ArkTSGraphicsDraw/entry/.gitignore | 6 + .../entry/build-profile.json5 | 43 + .../ArkTSGraphicsDraw/entry/hvigorfile.ts | 21 + .../entry/obfuscation-rules.txt | 23 + .../ArkTSGraphicsDraw/entry/oh-package.json5 | 25 + .../main/ets/drawing/pages/BasicEffect.ets | 188 ++ .../ets/drawing/pages/CanvasGetResult.ets | 177 ++ .../drawing/pages/CanvasOperationState.ets | 228 +++ .../main/ets/drawing/pages/ComplexEffect.ets | 417 +++++ .../ets/drawing/pages/PixelMapDrawing.ets | 192 ++ .../main/ets/drawing/pages/ShapeDrawing.ets | 348 ++++ .../ets/drawing/pages/TextBlockDrawing.ets | 299 ++++ .../main/ets/entryability/EntryAbility.ets | 57 + .../entrybackupability/EntryBackupAbility.ets | 27 + .../entry/src/main/ets/pages/Index.ets | 103 ++ .../src/main/ets/utils/AdaptationUtil.ets | 42 + .../entry/src/main/module.json5 | 66 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 180 ++ .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../src/main/resources/base/media/right.png | Bin 0 -> 4905 bytes .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 12 + .../main/resources/dark/element/color.json | 8 + .../entry/src/mock/mock-config.json5 | 17 + .../src/ohosTest/ets/test/Ability.test.ets | 385 ++++ .../entry/src/ohosTest/ets/test/List.test.ets | 20 + .../entry/src/ohosTest/ets/utils/Logger.ets | 45 + .../entry/src/ohosTest/module.json5 | 27 + .../hvigor/hvigor-config.json5 | 37 + .../Drawing/ArkTSGraphicsDraw/hvigorfile.ts | 6 + .../ArkTSGraphicsDraw/oh-package-lock.json5 | 28 + .../ArkTSGraphicsDraw/oh-package.json5 | 10 + .../Drawing/ArkTSGraphicsDraw/ohosTest.md | 14 + .../ArkTSGraphicsDraw/screenshot/canvas.jpeg | Bin 0 -> 30747 bytes .../screenshot/chinese_stroke.jpeg | Bin 0 -> 111551 bytes .../ArkTSGraphicsDraw/screenshot/effect.jpeg | Bin 0 -> 122999 bytes .../ArkTSGraphicsDraw/screenshot/index.jpeg | Bin 0 -> 40004 bytes .../ArkTSGraphicsDraw/screenshot/shape.jpeg | Bin 0 -> 43622 bytes .../screenshot/text_feature.jpeg | Bin 0 -> 108759 bytes .../screenshot/text_single.jpeg | Bin 0 -> 108801 bytes .../screenshot/text_theme.jpeg | Bin 0 -> 113430 bytes .../Drawing/NDKAPIDrawing/.gitignore | 12 + .../Drawing/NDKAPIDrawing/AppScope/app.json5 | 25 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes ArkGraphics2D/Drawing/NDKAPIDrawing/LICENSE | 78 + ArkGraphics2D/Drawing/NDKAPIDrawing/README.md | 103 ++ .../Drawing/NDKAPIDrawing/build-profile.json5 | 41 + .../Drawing/NDKAPIDrawing/code-linter.json5 | 20 + .../Drawing/NDKAPIDrawing/entry/.gitignore | 6 + .../NDKAPIDrawing/entry/build-profile.json5 | 55 + .../Drawing/NDKAPIDrawing/entry/hvigorfile.ts | 21 + .../NDKAPIDrawing/entry/obfuscation-rules.txt | 23 + .../NDKAPIDrawing/entry/oh-package.json5 | 26 + .../entry/src/main/cpp/CMakeLists.txt | 40 + .../entry/src/main/cpp/common/log_common.h | 27 + .../entry/src/main/cpp/napi_init.cpp | 42 + .../src/main/cpp/plugin/plugin_manager.cpp | 120 ++ .../src/main/cpp/plugin/plugin_manager.h | 40 + .../src/main/cpp/samples/sample_brush.cpp | 277 +++ .../src/main/cpp/samples/sample_canvas.cpp | 194 ++ .../src/main/cpp/samples/sample_graphics.cpp | 643 +++++++ .../src/main/cpp/samples/sample_graphics.h | 199 +++ .../src/main/cpp/samples/sample_matrix.cpp | 306 ++++ .../src/main/cpp/samples/sample_path.cpp | 453 +++++ .../entry/src/main/cpp/samples/sample_pen.cpp | 243 +++ .../src/main/cpp/samples/sample_pixelmap.cpp | 163 ++ .../src/main/cpp/samples/sample_rect.cpp | 126 ++ .../src/main/cpp/types/libentry/Index.d.ts | 16 + .../main/cpp/types/libentry/oh-package.json5 | 21 + .../src/main/cpp/utils/adaptation_util.cpp | 50 + .../src/main/cpp/utils/adaptation_util.h | 35 + .../main/ets/drawing/pages/BitmapDrawing.ets | 35 + .../main/ets/drawing/pages/BrushDrawing.ets | 78 + .../main/ets/drawing/pages/CanvasDrawing.ets | 92 + .../main/ets/drawing/pages/ImageDrawing.ets | 35 + .../main/ets/drawing/pages/MatrixDrawing.ets | 120 ++ .../main/ets/drawing/pages/PathDrawing.ets | 78 + .../src/main/ets/drawing/pages/PenDrawing.ets | 92 + .../ets/drawing/pages/PixelMapDrawing.ets | 77 + .../main/ets/drawing/pages/RectDrawing.ets | 71 + .../main/ets/entryability/EntryAbility.ets | 57 + .../entrybackupability/EntryBackupAbility.ets | 27 + .../main/ets/interface/XComponentContext.ts | 20 + .../entry/src/main/ets/pages/Index.ets | 89 + .../NDKAPIDrawing/entry/src/main/module.json5 | 51 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 208 +++ .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../src/main/resources/base/media/right.png | Bin 0 -> 4905 bytes .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 14 + .../main/resources/dark/element/color.json | 8 + .../src/main/resources/rawfile/startIcon.png | Bin 0 -> 6790 bytes .../entry/src/mock/mock-config.json5 | 17 + .../src/ohosTest/ets/test/Ability.test.ets | 486 +++++ .../entry/src/ohosTest/ets/test/List.test.ets | 20 + .../entry/src/ohosTest/ets/utils/Logger.ets | 45 + .../entry/src/ohosTest/module.json5 | 27 + .../NDKAPIDrawing/hvigor/hvigor-config.json5 | 37 + .../Drawing/NDKAPIDrawing/hvigorfile.ts | 6 + .../Drawing/NDKAPIDrawing/oh-package.json5 | 10 + .../Drawing/NDKAPIDrawing/ohosTest.md | 16 + .../screenshot/drawing_bitmap.jpeg | Bin 0 -> 11234 bytes .../screenshot/drawing_brush.jpeg | Bin 0 -> 19526 bytes .../screenshot/drawing_canvas.jpeg | Bin 0 -> 23530 bytes .../screenshot/drawing_image.jpeg | Bin 0 -> 7327 bytes .../screenshot/drawing_matrix.jpeg | Bin 0 -> 30020 bytes .../screenshot/drawing_path.jpeg | Bin 0 -> 21570 bytes .../NDKAPIDrawing/screenshot/drawing_pen.jpeg | Bin 0 -> 25245 bytes .../screenshot/drawing_pixelmap.jpeg | Bin 0 -> 15699 bytes .../screenshot/drawing_rect.jpeg | Bin 0 -> 15119 bytes .../screenshot/startability.jpeg | Bin 0 -> 24241 bytes ArkGraphics2D/Drawing/NDKDrawing/.gitignore | 12 + .../Drawing/NDKDrawing/AppScope/app.json5 | 24 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes ArkGraphics2D/Drawing/NDKDrawing/LICENSE | 78 + ArkGraphics2D/Drawing/NDKDrawing/README.md | 76 + .../Drawing/NDKDrawing/build-profile.json5 | 40 + .../Drawing/NDKDrawing/code-linter.json5 | 20 + .../Drawing/NDKDrawing/entry/.gitignore | 6 + .../NDKDrawing/entry/build-profile.json5 | 53 + .../Drawing/NDKDrawing/entry/hvigorfile.ts | 20 + .../NDKDrawing/entry/obfuscation-rules.txt | 23 + .../Drawing/NDKDrawing/entry/oh-package.json5 | 25 + .../entry/src/main/cpp/CMakeLists.txt | 27 + .../entry/src/main/cpp/common/log_common.h | 26 + .../NDKDrawing/entry/src/main/cpp/hello.cpp | 43 + .../entry/src/main/cpp/napi_init.cpp | 42 + .../src/main/cpp/plugin/plugin_manager.cpp | 126 ++ .../src/main/cpp/plugin/plugin_manager.h | 40 + .../src/main/cpp/samples/sample_bitmap.cpp | 537 ++++++ .../src/main/cpp/samples/sample_bitmap.h | 77 + .../src/main/cpp/types/libentry/index.d.ts | 14 + .../main/cpp/types/libentry/oh-package.json5 | 20 + .../main/ets/entryability/EntryAbility.ets | 56 + .../entrybackupability/EntryBackupAbility.ets | 26 + .../main/ets/interface/XComponentContext.ts | 19 + .../entry/src/main/ets/pages/Index.ets | 71 + .../NDKDrawing/entry/src/main/module.json5 | 51 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 16 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../src/main/resources/base/media/icon.png | Bin 0 -> 2041 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 4351 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 16 + .../main/resources/zh_CN/element/string.json | 16 + .../entry/src/mock/Libentry.mock.ets | 21 + .../entry/src/mock/mock-config.json5 | 19 + .../ohosTest/ets/test/DrawingAbility.test.ets | 99 ++ .../entry/src/ohosTest/ets/test/List.test.ets | 19 + .../ohosTest/ets/testability/TestAbility.ets | 65 + .../ohosTest/ets/testability/pages/Index.ets | 31 + .../ets/testrunner/OpenHarmonyTestRunner.ets | 61 + .../ets/testrunner/OpenHarmonyTestRunner.ts | 63 + .../entry/src/ohosTest/module.json5 | 51 + .../resources/base/element/color.json | 8 + .../resources/base/element/string.json | 16 + .../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/test_pages.json | 5 + .../NDKDrawing/entry/src/test/List.test.ets | 19 + .../entry/src/test/LocalUnit.test.ets | 47 + .../NDKDrawing/hvigor/hvigor-config.json5 | 36 + .../Drawing/NDKDrawing/hvigorfile.ts | 6 + .../Drawing/NDKDrawing/oh-package.json5 | 10 + ArkGraphics2D/Drawing/NDKDrawing/ohosTest.md | 10 + .../Drawing/NDKDrawing/screenshot/path.png | Bin 0 -> 26537 bytes .../Drawing/NDKDrawing/screenshot/text.png | Bin 0 -> 15117 bytes .../Drawing/NDKGraphicsDraw/.gitignore | 12 + .../NDKGraphicsDraw/AppScope/app.json5 | 25 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes ArkGraphics2D/Drawing/NDKGraphicsDraw/LICENSE | 78 + .../Drawing/NDKGraphicsDraw/README.md | 109 ++ .../NDKGraphicsDraw/build-profile.json5 | 43 + .../Drawing/NDKGraphicsDraw/code-linter.json5 | 20 + .../Drawing/NDKGraphicsDraw/entry/.gitignore | 6 + .../NDKGraphicsDraw/entry/build-profile.json5 | 55 + .../NDKGraphicsDraw/entry/hvigorfile.ts | 21 + .../entry/obfuscation-rules.txt | 23 + .../NDKGraphicsDraw/entry/oh-package.json5 | 26 + .../entry/src/main/cpp/CMakeLists.txt | 40 + .../entry/src/main/cpp/common/log_common.h | 27 + .../entry/src/main/cpp/napi_init.cpp | 42 + .../src/main/cpp/plugin/plugin_manager.cpp | 120 ++ .../src/main/cpp/plugin/plugin_manager.h | 40 + .../src/main/cpp/samples/sample_graphics.cpp | 1564 +++++++++++++++++ .../src/main/cpp/samples/sample_graphics.h | 151 ++ .../src/main/cpp/types/libentry/Index.d.ts | 16 + .../main/cpp/types/libentry/oh-package.json5 | 21 + .../src/main/cpp/utils/adaptation_util.cpp | 50 + .../src/main/cpp/utils/adaptation_util.h | 35 + .../main/ets/drawing/pages/BasicEffect.ets | 51 + .../ets/drawing/pages/CanvasGetResult.ets | 63 + .../drawing/pages/CanvasOperationState.ets | 74 + .../main/ets/drawing/pages/ComplexEffect.ets | 97 + .../ets/drawing/pages/PixelMapDrawing.ets | 42 + .../main/ets/drawing/pages/ShapeDrawing.ets | 86 + .../ets/drawing/pages/TextBlockDrawing.ets | 86 + .../main/ets/entryability/EntryAbility.ets | 57 + .../entrybackupability/EntryBackupAbility.ets | 27 + .../main/ets/interface/XComponentContext.ts | 18 + .../entry/src/main/ets/pages/Index.ets | 85 + .../entry/src/main/module.json5 | 66 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 176 ++ .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../src/main/resources/base/media/right.png | Bin 0 -> 4905 bytes .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 12 + .../main/resources/dark/element/color.json | 8 + .../entry/src/mock/Libentry.mock.ets | 22 + .../entry/src/mock/mock-config.json5 | 20 + .../src/ohosTest/ets/test/Ability.test.ets | 380 ++++ .../entry/src/ohosTest/ets/test/List.test.ets | 20 + .../entry/src/ohosTest/ets/utils/Logger.ets | 45 + .../entry/src/ohosTest/module.json5 | 27 + .../hvigor/hvigor-config.json5 | 37 + .../Drawing/NDKGraphicsDraw/hvigorfile.ts | 6 + .../Drawing/NDKGraphicsDraw/oh-package.json5 | 10 + .../Drawing/NDKGraphicsDraw/ohosTest.md | 14 + .../NDKGraphicsDraw/screenshot/Shape.jpeg | Bin 0 -> 49108 bytes .../NDKGraphicsDraw/screenshot/canvas.jpeg | Bin 0 -> 33312 bytes .../NDKGraphicsDraw/screenshot/effect.jpeg | Bin 0 -> 51232 bytes .../NDKGraphicsDraw/screenshot/index.jpeg | Bin 0 -> 39945 bytes .../screenshot/text_chinese_stroke.jpeg | Bin 0 -> 112327 bytes .../screenshot/text_feature.jpeg | Bin 0 -> 106497 bytes .../screenshot/text_single.jpeg | Bin 0 -> 106415 bytes .../screenshot/text_theme.jpeg | Bin 0 -> 110933 bytes 298 files changed, 16192 insertions(+) create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/.gitignore create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/app.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/resources/base/media/app_icon.png create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/LICENSE create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/README.md create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/build-profile.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/code-linter.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/.gitignore create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/build-profile.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/hvigorfile.ts create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/obfuscation-rules.txt create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/Logger.ts create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/MyNodeController.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/PathRenderNode.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/RectRenderNode.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/TextRenderNode.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/pages/Index.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/module.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/color.json create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/background.png create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/en_US/element/string.json create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/zh_CN/element/string.json create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/mock/mock-config.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/module.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/test/List.test.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/test/LocalUnit.test.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/hvigor/hvigor-config.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/hvigorfile.ts create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/oh-package-lock.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/ohosTest.md create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/screenshot/path.png create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/screenshot/rect.png create mode 100644 ArkGraphics2D/Drawing/ArkTSDrawing/screenshot/text.png create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/.gitignore create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/AppScope/app.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/AppScope/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/AppScope/resources/base/media/app_icon.png create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/LICENSE create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/README.md create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/build-profile.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/code-linter.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/.gitignore create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/build-profile.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/hvigorfile.ts create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/obfuscation-rules.txt create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/BasicEffect.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/CanvasGetResult.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/CanvasOperationState.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/ComplexEffect.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/PixelMapDrawing.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/ShapeDrawing.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/TextBlockDrawing.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/pages/Index.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/utils/AdaptationUtil.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/module.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/element/color.json create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/media/background.png create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/media/right.png create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/dark/element/color.json create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/mock/mock-config.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/utils/Logger.ets create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/module.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/hvigor/hvigor-config.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/hvigorfile.ts create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/oh-package-lock.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/ohosTest.md create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/canvas.jpeg create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/chinese_stroke.jpeg create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/effect.jpeg create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/index.jpeg create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/shape.jpeg create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/text_feature.jpeg create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/text_single.jpeg create mode 100644 ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/text_theme.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/.gitignore create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/AppScope/app.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/AppScope/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/AppScope/resources/base/media/app_icon.png create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/LICENSE create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/README.md create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/build-profile.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/code-linter.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/.gitignore create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/build-profile.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/hvigorfile.ts create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/obfuscation-rules.txt create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/CMakeLists.txt create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/common/log_common.h create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/napi_init.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/plugin/plugin_manager.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/plugin/plugin_manager.h create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/samples/sample_brush.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/samples/sample_canvas.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/samples/sample_graphics.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/samples/sample_graphics.h create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/samples/sample_matrix.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/samples/sample_path.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/samples/sample_pen.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/samples/sample_pixelmap.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/samples/sample_rect.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/types/libentry/Index.d.ts create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/types/libentry/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/utils/adaptation_util.cpp create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/cpp/utils/adaptation_util.h create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/drawing/pages/BitmapDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/drawing/pages/BrushDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/drawing/pages/CanvasDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/drawing/pages/ImageDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/drawing/pages/MatrixDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/drawing/pages/PathDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/drawing/pages/PenDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/drawing/pages/PixelMapDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/drawing/pages/RectDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/interface/XComponentContext.ts create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/ets/pages/Index.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/module.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/base/element/color.json create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/base/media/background.png create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/base/media/right.png create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/dark/element/color.json create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/main/resources/rawfile/startIcon.png create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/mock/mock-config.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/ohosTest/ets/utils/Logger.ets create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/entry/src/ohosTest/module.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/hvigor/hvigor-config.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/hvigorfile.ts create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/ohosTest.md create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/screenshot/drawing_bitmap.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/screenshot/drawing_brush.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/screenshot/drawing_canvas.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/screenshot/drawing_image.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/screenshot/drawing_matrix.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/screenshot/drawing_path.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/screenshot/drawing_pen.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/screenshot/drawing_pixelmap.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/screenshot/drawing_rect.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKAPIDrawing/screenshot/startability.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/.gitignore create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/AppScope/app.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/AppScope/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/AppScope/resources/base/media/app_icon.png create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/LICENSE create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/README.md create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/build-profile.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/code-linter.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/.gitignore create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/build-profile.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/hvigorfile.ts create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/obfuscation-rules.txt create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/cpp/CMakeLists.txt create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/cpp/common/log_common.h create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/cpp/hello.cpp create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/cpp/napi_init.cpp create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/cpp/plugin/plugin_manager.cpp create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/cpp/plugin/plugin_manager.h create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/cpp/samples/sample_bitmap.cpp create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/cpp/samples/sample_bitmap.h create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/cpp/types/libentry/index.d.ts create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/cpp/types/libentry/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/ets/interface/XComponentContext.ts create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/ets/pages/Index.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/module.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/base/element/color.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/base/media/background.png create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/base/media/icon.png create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/en_US/element/string.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/main/resources/zh_CN/element/string.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/mock/Libentry.mock.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/mock/mock-config.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/ets/testability/TestAbility.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/ets/testability/pages/Index.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/module.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/element/color.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/media/icon.png create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/profile/test_pages.json create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/test/List.test.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/entry/src/test/LocalUnit.test.ets create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/hvigor/hvigor-config.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/hvigorfile.ts create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/ohosTest.md create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/screenshot/path.png create mode 100644 ArkGraphics2D/Drawing/NDKDrawing/screenshot/text.png create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/.gitignore create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/AppScope/app.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/AppScope/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/AppScope/resources/base/media/app_icon.png create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/LICENSE create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/README.md create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/build-profile.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/code-linter.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/.gitignore create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/build-profile.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/hvigorfile.ts create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/obfuscation-rules.txt create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/CMakeLists.txt create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/common/log_common.h create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/napi_init.cpp create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/plugin/plugin_manager.cpp create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/plugin/plugin_manager.h create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/samples/sample_graphics.cpp create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/samples/sample_graphics.h create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/types/libentry/Index.d.ts create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/types/libentry/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/utils/adaptation_util.cpp create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/cpp/utils/adaptation_util.h create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/drawing/pages/BasicEffect.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/drawing/pages/CanvasGetResult.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/drawing/pages/CanvasOperationState.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/drawing/pages/ComplexEffect.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/drawing/pages/PixelMapDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/drawing/pages/ShapeDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/drawing/pages/TextBlockDrawing.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/interface/XComponentContext.ts create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/ets/pages/Index.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/module.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/resources/base/element/color.json create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/resources/base/element/string.json create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/resources/base/media/background.png create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/resources/base/media/foreground.png create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/resources/base/media/layered_image.json create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/resources/base/media/right.png create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/resources/base/media/startIcon.png create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/resources/base/profile/backup_config.json create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/resources/base/profile/main_pages.json create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/main/resources/dark/element/color.json create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/mock/Libentry.mock.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/mock/mock-config.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/ohosTest/ets/utils/Logger.ets create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/entry/src/ohosTest/module.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/hvigor/hvigor-config.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/hvigorfile.ts create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/oh-package.json5 create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/ohosTest.md create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/screenshot/Shape.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/screenshot/canvas.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/screenshot/effect.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/screenshot/index.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/screenshot/text_chinese_stroke.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/screenshot/text_feature.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/screenshot/text_single.jpeg create mode 100644 ArkGraphics2D/Drawing/NDKGraphicsDraw/screenshot/text_theme.jpeg diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/.gitignore b/ArkGraphics2D/Drawing/ArkTSDrawing/.gitignore new file mode 100644 index 000000000..d2ff20141 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/.gitignore @@ -0,0 +1,12 @@ +/node_modules +/oh_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +**/.test +/.appanalyzer \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/app.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/app.json5 new file mode 100644 index 000000000..8633c11d6 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/app.json5 @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "app": { + "bundleName": "com.samples.drawing", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/resources/base/element/string.json b/ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/resources/base/element/string.json new file mode 100644 index 000000000..ca0ae1186 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "drawing" + } + ] +} diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/resources/base/media/app_icon.png b/ArkGraphics2D/Drawing/ArkTSDrawing/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a39445dc87828b76fed6d2ec470dd455c45319e3 GIT binary patch literal 2777 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 literal 0 HcmV?d00001 diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/LICENSE b/ArkGraphics2D/Drawing/ArkTSDrawing/LICENSE new file mode 100644 index 000000000..338e5b0bc --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/LICENSE @@ -0,0 +1,78 @@ + Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +Apache License, Version 2.0 +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: +1.You must give any other recipients of the Work or Derivative Works a copy of this License; and +2.You must cause any modified files to carry prominent notices stating that You changed the files; and +3.You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +4.If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/README.md b/ArkGraphics2D/Drawing/ArkTSDrawing/README.md new file mode 100644 index 000000000..b3164a071 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/README.md @@ -0,0 +1,68 @@ +# 使用Drawing实现图形绘制与显示(ArkTS) + +## 介绍 + +本工程主要实现了对以下指南文档中[访问控制概述](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/security/AccessToken/access-token-overview.md)示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。 + +## 效果预览 + +| ![](screenshot/path.png) | ![](screenshot/rect.png) | ![](screenshot/text.png) | +| ------------------------ | ------------------------ | ------------------------ | + +使用说明: +1. 该工程可以选择在模拟器和开发板上运行。 +2. 点击构建,即可在生成的应用中点击对应的按钮进行图案的绘制。 +3. 进入”DocsSample/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets“文件,可以对本项目进行UI的自动化测试。 + +## 工程目录 + +``` +ArkTSDrawing +├──entry/src/main +│ ├──ets // ets代码区 +| | ├──common +| | | ├──logger.ts // 日志类 +| | | ├──MyNodeController.ets // 节点控制类 +| | | ├──PathRenderNode.ets // 绘制路径类 +| | | ├──RectRenderNode.ets // 绘制矩形类 +| | | └──TextRenderNode.ets // 绘制文本类 +│ │ ├──entryability +| | | └──EntryAbility.ets // 程序入口类 +| | ├──entrybackupability +│ │ │ └──EntryBackupAbility.ets +│ │ └──pages // 页面文件 +│ │ └──Index.ets // 主界面 +| ├──resources // 资源文件目录 +``` + +## 具体实现 + +1. 创建`NodeController`的子类`MyNodeController`,并在其中定义创建`FrameNode`的函数。`NodeController`定义了节点容器的控制器,控制着容器里在生命周期中的节点。`FrameNode`定义了节点的基本类型,并包含一个`RenderNode`。 +2. 创建`RenderNode`子类`PathRenderNode`、`RectRenderNode`、`TextRenderNode`并在其中定义绘图函数。`RenderNode`中包含树结构的操作,以及对绘制属性的操作,其中`draw`方法会在`RenderNode`进行绘制时被调用。使用每个子类的`draw`方法可以实现五角星、举行和文本文字的绘制。 + +## 相关权限 + +无。 + +## 依赖 + +不涉及。 + +## 约束和限制 + +1. 本示例支持标准系统上运行,支持设备:仅在手机上可以正确显示。 +2. 本示例支持API14版本SDK,版本号:5.0.2.57。 +3. 本示例已支持使DevEco Studio 5.0.1 Release (构建版本:5.0.5.306,构建 2024年12月6日)编译运行。 + +## 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo code/DocsSample/Drawing/ArkTSDrawing/ > .git/info/sparse-checkout +git remote add origin https://gitee.com/openharmony/applications_app_samples.git +git pull origin master +``` + diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/build-profile.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/build-profile.json5 new file mode 100644 index 000000000..0db3462d2 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/build-profile.json5 @@ -0,0 +1,42 @@ +{ + "app": { + "products": [ + { + "name": "default", + "signingConfig": "default", + "compatibleSdkVersion": "5.0.0(12)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug" + }, + { + "name": "release" + } + ], + "signingConfigs": [ + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/code-linter.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/code-linter.json5 new file mode 100644 index 000000000..77b31b517 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/code-linter.json5 @@ -0,0 +1,20 @@ +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/.gitignore b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/.gitignore new file mode 100644 index 000000000..e2713a277 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/build-profile.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/build-profile.json5 new file mode 100644 index 000000000..7fb94a437 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/build-profile.json5 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/hvigorfile.ts b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/hvigorfile.ts new file mode 100644 index 000000000..8fe781992 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/hvigorfile.ts @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/obfuscation-rules.txt b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/obfuscation-rules.txt new file mode 100644 index 000000000..272efb6ca --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/obfuscation-rules.txt @@ -0,0 +1,23 @@ +# Define project specific obfuscation rules here. +# You can include the obfuscation configuration files in the current module's build-profile.json5. +# +# For more details, see +# https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# Obfuscation options: +# -disable-obfuscation: disable all obfuscations +# -enable-property-obfuscation: obfuscate the property names +# -enable-toplevel-obfuscation: obfuscate the names in the global scope +# -compact: remove unnecessary blank spaces and all line feeds +# -remove-log: remove all console.* statements +# -print-namecache: print the name cache that contains the mapping from the old names to new names +# -apply-namecache: reuse the given cache file + +# Keep options: +# -keep-property-name: specifies property names that you want to keep +# -keep-global-name: specifies names that you want to keep in the global scope + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/oh-package.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/oh-package.json5 new file mode 100644 index 000000000..c29643810 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/oh-package.json5 @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": {} +} + diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/Logger.ts b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/Logger.ts new file mode 100644 index 000000000..d30e495c6 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/Logger.ts @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import hilog from '@ohos.hilog' + +class Logger { + private domain: number + private prefix: string + private format: string = '%{public}s, %{public}s' + + constructor(prefix: string) { + this.prefix = prefix + this.domain = 0x0001 + } + + debug(...args: string[]) { + hilog.debug(this.domain, this.prefix, this.format, args) + } + + info(...args: string[]) { + hilog.info(this.domain, this.prefix, this.format, args) + } + + warn(...args: string[]) { + hilog.warn(this.domain, this.prefix, this.format, args) + } + + error(...args: string[]) { + hilog.error(this.domain, this.prefix, this.format, args) + } + + fatal(...args: string[]) { + hilog.fatal(this.domain, this.prefix, this.format, args) + } + + isLoggable(level: number) { + hilog.isLoggable(this.domain, this.prefix, level) + } +} + +export default new Logger('[Sample_ArkTSDrawing]') diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/MyNodeController.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/MyNodeController.ets new file mode 100644 index 000000000..39394daa3 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/MyNodeController.ets @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import { FrameNode, NodeController, RenderNode } from '@kit.ArkUI'; + +class MyNodeController extends NodeController { + private rootNode: FrameNode | null = null; + + makeNode(uiContext: UIContext): FrameNode { + this.rootNode = new FrameNode(uiContext); + if (this.rootNode == null) { + return this.rootNode; + } + const renderNode = this.rootNode.getRenderNode() + if (renderNode != null) { + renderNode.frame = { + x: 0, + y: 0, + width: 10, + height: 500 + } + renderNode.pivot = { x: 50, y: 50 } + } + return this.rootNode; + } + + addNode(node: RenderNode): void { + if (this.rootNode == null) { + return; + } + const renderNode = this.rootNode.getRenderNode() + if (renderNode != null) { + renderNode.appendChild(node); + } + } + + clearNodes(): void { + if (this.rootNode == null) { + return; + } + const renderNode = this.rootNode.getRenderNode() + if (renderNode != null) { + renderNode.clearChildren(); + } + } +} + +export default MyNodeController; diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/PathRenderNode.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/PathRenderNode.ets new file mode 100644 index 000000000..179571859 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/PathRenderNode.ets @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import { RenderNode } from '@kit.ArkUI' +import { common2D, drawing } from '@kit.ArkGraphics2D' + +class PathRenderNode extends RenderNode { + async draw(context: DrawContext) { + const canvas = context.canvas; + let height_ = 1200; + let width_ = 600; + let len = height_ / 4; + let aX = width_ / 2; + let aY = height_ / 4; + let dX = aX - len * Math.sin(18.0); + let dY = aY + len * Math.cos(18.0); + let cX = aX + len * Math.sin(18.0); + let cY = dY; + let bX = aX + (len / 2.0); + let bY = aY + Math.sqrt((cX - dX) * (cX - dX) + (len / 2.0) * (len / 2.0)); + let eX = aX - (len / 2.0); + let eY = bY; + + // 创建一个path对象,然后使用接口连接成一个五角星形状 + let path = new drawing.Path(); + + // 指定path的起始位置 + path.moveTo(aX, aY); + + // 用直线连接到目标点 + path.lineTo(bX, bY); + path.lineTo(cX, cY); + path.lineTo(dX, dY); + path.lineTo(eX, eY); + + // 闭合形状,path绘制完毕 + path.close(); + + // 创建一个画笔Pen对象,Pen对象用于形状的边框线绘制 + let pen = new drawing.Pen(); + pen.setAntiAlias(true); + let penColor: common2D.Color = { + alpha: 0xFF, + red: 0xFF, + green: 0x00, + blue: 0x00 + } + pen.setColor(penColor); + pen.setStrokeWidth(10.0); + + // 将Pen画笔设置到canvas中 + canvas.attachPen(pen); + + // 创建一个画刷Brush对象,Brush对象用于形状的填充 + let brush = new drawing.Brush(); + let brushColor: common2D.Color = { + alpha: 0xFF, + red: 0x00, + green: 0xFF, + blue: 0x00 + } + brush.setColor(brushColor); + + // 将Brush画刷设置到canvas中 + canvas.attachBrush(brush); + + // 绘制path + canvas.drawPath(path); + } +} + +export default PathRenderNode; diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/RectRenderNode.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/RectRenderNode.ets new file mode 100644 index 000000000..0019996a7 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/RectRenderNode.ets @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import { RenderNode } from '@kit.ArkUI' +import { drawing } from '@kit.ArkGraphics2D' + +class RectRenderNode extends RenderNode { + async draw(context: DrawContext) { + const canvas = context.canvas; + const pen = new drawing.Pen(); + pen.setStrokeWidth(5); + pen.setColor({ + alpha: 255, + red: 255, + green: 0, + blue: 0 + }); + canvas.attachPen(pen); + canvas.drawRect({ + left: 200, + right: 500, + top: 300, + bottom: 900 + }); + } +} + +export default RectRenderNode; diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/TextRenderNode.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/TextRenderNode.ets new file mode 100644 index 000000000..18f946810 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/common/TextRenderNode.ets @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import { RenderNode } from '@kit.ArkUI' +import { drawing } from '@kit.ArkGraphics2D' + +class TextRenderNode extends RenderNode { + async draw(context: DrawContext) { + const canvas = context.canvas; + const brush = new drawing.Brush(); + brush.setColor({ + alpha: 255, + red: 255, + green: 0, + blue: 0 + }); + const font = new drawing.Font(); + font.setSize(100); + const textBlob = drawing.TextBlob.makeFromString('Hello World', font, drawing.TextEncoding.TEXT_ENCODING_UTF8); + canvas.attachBrush(brush); + canvas.drawTextBlob(textBlob, 90, 500); + } +} + +export default TextRenderNode; diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/entryability/EntryAbility.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 000000000..4e3af2376 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 000000000..be794f48c --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/pages/Index.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/pages/Index.ets new file mode 100644 index 000000000..39dbefd2a --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import MyNodeController from '../common/MyNodeController' +import PathRenderNode from '../common/PathRenderNode' +import RectRenderNode from '../common/RectRenderNode' +import TextRenderNode from '../common/TextRenderNode' + +// 创建一个PathRenderNode对象 +const PathNode = new PathRenderNode(); +// 定义PathNode的像素格式 +PathNode.frame = { + x: 100, + y: 100, + width: 200, + height: 800 +} +PathNode.pivot = { x: 0.2, y: 0.8 } +PathNode.scale = { x: 1, y: 1 } + +// 创建一个RectRenderNode对象 +const rectNode = new RectRenderNode(); +// 定义rectNode的像素格式 +rectNode.frame = { + x: 90, + y: 100, + width: 200, + height: 800 +} +rectNode.pivot = { x: 0.2, y: 0.8 } +rectNode.scale = { x: 1, y: 1 } + +// 创建一个TextRenderNode对象 +const textNode = new TextRenderNode(); +// 定义textNode的像素格式 +textNode.frame = { + x: 90, + y: 100, + width: 200, + height: 800 +} +textNode.pivot = { x: 0.2, y: 0.8 } +textNode.scale = { x: 1, y: 1 } + +@Entry +@Component +struct RenderTest { + private myNodeController: MyNodeController = new MyNodeController(); + + build() { + Column() { + Row() { + NodeContainer(this.myNodeController) + .height('100%') + Button("Draw Path") + .margin({ bottom: 200, right: 12 }) + .onClick(() => { + this.myNodeController.clearNodes() + this.myNodeController.addNode(PathNode) + }) + Button("Draw Rect") + .margin({ bottom: 200, right: 12 }) + .onClick(() => { + this.myNodeController.clearNodes() + this.myNodeController.addNode(rectNode) + }) + Button("Draw Text") + .margin({ bottom: 200, right: 12 }) + .onClick(() => { + this.myNodeController.clearNodes() + this.myNodeController.addNode(textNode) + }) + } + .width('100%') + .justifyContent(FlexAlign.Center) + .shadow(ShadowStyle.OUTER_DEFAULT_SM) + .alignItems(VerticalAlign.Bottom) + .layoutWeight(1) + } + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/module.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/module.json5 new file mode 100644 index 000000000..ca3c9ba31 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/module.json5 @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "extensionAbilities": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/color.json b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/color.json new file mode 100644 index 000000000..3c712962d --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/string.json b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/string.json new file mode 100644 index 000000000..19986ebf7 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ArkTSDrawing" + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/background.png b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 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 A4*&oF literal 0 HcmV?d00001 diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/foreground.png b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 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 cSLciz6AsI{U0tD9;7S&f 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/backup_config.json b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 000000000..78f40ae7c --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/main_pages.json b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 000000000..1898d94f5 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/en_US/element/string.json b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 000000000..19986ebf7 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ArkTSDrawing" + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/zh_CN/element/string.json b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 000000000..e250f3f7d --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "模块描述" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ArkTSDrawing" + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/mock/mock-config.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/mock/mock-config.json5 new file mode 100644 index 000000000..e4eb8bbe4 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/mock/mock-config.json5 @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets new file mode 100644 index 000000000..dea8391d8 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import { describe, it, expect } from '@ohos/hypium'; +import { Driver, ON } from '@ohos.UiTest'; +import hilog from '@ohos.hilog'; + +const TAG = '[Sample_ArkTSDrawingAPI]'; +const DOMAIN = 0xF811 +const BUNDLE = 'ArkTSDrawingAPI_' + +export default function abilityTest() { + + describe('ActsAbilityTest', () => { + /** + * 打开应用 + */ + it(BUNDLE + 'StartAbility_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + "StartAbility_001, begin") + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.drawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `StartAbility_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Path')); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'StartAbility_001 end') + }) + + /** + * 点击按钮,绘制图形 + */ + it(BUNDLE + 'DrawPath_001', 2, async () => { + hilog.info(DOMAIN, TAG, BUNDLE + "DrawPath_001, begin") + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.drawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `DrawPath_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Path')); + let drawPathBtn = await driver.findComponent(ON.text('Draw Path')); + // 点击'Draw Path'按钮 + await drawPathBtn.click(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawPath_001 end') + }) + + /** + * 点击按钮,绘制矩形 + */ + it(BUNDLE + 'DrawRect_001', 2, async () => { + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawRect_001 begin') + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.drawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `DrawRect_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Rect')); + let drawPathBtn = await driver.findComponent(ON.text('Draw Rect')); + // 点击'Draw Rect'按钮 + await drawPathBtn.click(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawRect_001 end') + }) + + /** + * 点击按钮,绘制文字 + */ + it(BUNDLE + 'DrawText_001', 2, async () => { + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawText_001 begin') + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.drawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `DrawText_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Text')); + let drawPathBtn = await driver.findComponent(ON.text('Draw Text')); + // 点击'Draw Text'按钮 + await drawPathBtn.click(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawText_001 end') + }) + }) +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/List.test.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 000000000..c6a406e9e --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import abilityTest from './DrawingAbility.test'; + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/module.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/module.json5 new file mode 100644 index 000000000..944ed9985 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/ohosTest/module.json5 @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/test/List.test.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/test/List.test.ets new file mode 100644 index 000000000..3bc7c739d --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/test/List.test.ets @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/test/LocalUnit.test.ets b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/test/LocalUnit.test.ets new file mode 100644 index 000000000..4ab69eca2 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/entry/src/test/LocalUnit.test.ets @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/hvigor/hvigor-config.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/hvigor/hvigor-config.json5 new file mode 100644 index 000000000..87990affc --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/hvigor/hvigor-config.json5 @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "modelVersion": "5.0.0", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/hvigorfile.ts b/ArkGraphics2D/Drawing/ArkTSDrawing/hvigorfile.ts new file mode 100644 index 000000000..f3cb9f1a8 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/hvigorfile.ts @@ -0,0 +1,6 @@ +import { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/oh-package-lock.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/oh-package-lock.json5 new file mode 100644 index 000000000..5228468e4 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/oh-package-lock.json5 @@ -0,0 +1,28 @@ +{ + "meta": { + "stableOrder": true, + "enableUnifiedLockfile": false + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@ohos/hamock@1.0.0": "@ohos/hamock@1.0.0", + "@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19" + }, + "packages": { + "@ohos/hamock@1.0.0": { + "name": "@ohos/hamock", + "version": "1.0.0", + "integrity": "sha512-K6lDPYc6VkKe6ZBNQa9aoG+ZZMiwqfcR/7yAVFSUGIuOAhPvCJAo9+t1fZnpe0dBRBPxj2bxPPbKh69VuyAtDg==", + "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hamock/-/hamock-1.0.0.har", + "registryType": "ohpm" + }, + "@ohos/hypium@1.0.19": { + "name": "@ohos/hypium", + "version": "1.0.19", + "integrity": "sha512-cEjDgLFCm3cWZDeRXk7agBUkPqjWxUo6AQeiu0gEkb3J8ESqlduQLSIXeo3cCsm8U/asL7iKjF85ZyOuufAGSQ==", + "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.19.har", + "registryType": "ohpm" + } + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/oh-package.json5 b/ArkGraphics2D/Drawing/ArkTSDrawing/oh-package.json5 new file mode 100644 index 000000000..bb12751b9 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/oh-package.json5 @@ -0,0 +1,10 @@ +{ + "modelVersion": "5.0.0", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/ohosTest.md b/ArkGraphics2D/Drawing/ArkTSDrawing/ohosTest.md new file mode 100644 index 000000000..407090b8e --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSDrawing/ohosTest.md @@ -0,0 +1,11 @@ +# ArkTSDrawing测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动 | 测试结果 | +| -------- | ------------ | ----------------- | --------------------------- | -------- | -------- | +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | 是 | Pass | +| 绘制路径 | 位于首页 | 点击**Draw Path** | 页面显示出一个五角星 | 是 | Pass | +| 绘制矩形 | 位于首页 | 点击**Draw Rect** | 页面显示出一个矩形 | 是 | Pass | +| 绘制文字 | 位于首页 | 点击**Draw Text** | 页面显示出一个“Hello World” | 是 | Pass | + diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/screenshot/path.png b/ArkGraphics2D/Drawing/ArkTSDrawing/screenshot/path.png new file mode 100644 index 0000000000000000000000000000000000000000..73831e09b0584af5d9eb03602ef7b86435619e5b GIT binary patch literal 132620 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 literal 0 HcmV?d00001 diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/screenshot/rect.png b/ArkGraphics2D/Drawing/ArkTSDrawing/screenshot/rect.png new file mode 100644 index 0000000000000000000000000000000000000000..562ede3997239af1e610dd5eb0f6e629ba3a235b GIT binary patch literal 81012 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 literal 0 HcmV?d00001 diff --git a/ArkGraphics2D/Drawing/ArkTSDrawing/screenshot/text.png b/ArkGraphics2D/Drawing/ArkTSDrawing/screenshot/text.png new file mode 100644 index 0000000000000000000000000000000000000000..246a6e31cd0e20b2ab96714d24044602babffc6c GIT binary patch literal 100472 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 literal 0 HcmV?d00001 diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/LICENSE b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/LICENSE new file mode 100644 index 000000000..18795a48d --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/LICENSE @@ -0,0 +1,78 @@ + Copyright (c) 2025 Huawei Device Co., Ltd. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +Apache License, Version 2.0 +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: +1.You must give any other recipients of the Work or Derivative Works a copy of this License; and +2.You must cause any modified files to carry prominent notices stating that You changed the files; and +3.You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +4.If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/README.md b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/README.md new file mode 100644 index 000000000..a13aa6735 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/README.md @@ -0,0 +1,97 @@ +# ArkTSGraphicsDraw + +## 介绍 + +本示例基于开发>图形->ArkGraphics 2D(方舟2D图形服务)-> [图形绘制与显示](https://gitee.com/openharmony/docs/tree/OpenHarmony-5.0.1-Release/zh-cn/application-dev/graphics#/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/graphics/textblock-drawing-arkts.md)中的ArkTS部分开发。 + +本示例主要功能如下: + +- 演示画布的获取与绘制结果的显示,画布的类型分为直接画布与离屏画布。 +- 演示画布操作及状态处理,通过对画布进行裁剪、平移等操作控制绘图结果。 +- 演示基础绘制效果,绘制经过填充、描边等效果处理后的图形。 +- 演示复杂绘制效果,绘制经过着色器、滤波器等效果处理过后的图形。 +- 演示几何图形绘制,绘制点、圆弧、区域等多种几何形状。 +- 演示图片绘制,绘制位图。 +- 演示字块绘制,绘制多种字块类型,包括中文文字描边、主题文字、单字和特征字体等。 + +## 效果预览 + +| 主页 | 画布的获取与绘制结果的显示 | 复杂绘制效果-混合模式 | 几何图形绘制-绘制路径 | +| --------------------------------- | ----------------------------------- | ----------------------------------- | --------------------------------- | +| ![index](./screenshot/index.jpeg) | ![canvas](./screenshot/canvas.jpeg) | ![effect](./screenshot/effect.jpeg) | ![shape](./screenshot/shape.jpeg) | +| 字块绘制-中文文字描边 | 字块绘制-主题文字 | 字块绘制-单字 | 字块绘制-特征字体 | +| ![index](./screenshot/chinese_stroke.jpeg) | ![canvas](./screenshot/text_theme.jpeg) | ![effect](./screenshot/text_single.jpeg) | ![shape](./screenshot/text_feature.jpeg) | + + +使用说明: + +1. 点击主页的导航标签组件,进入对应的演示页面。演示页面包括: + - 画布的获取与绘制结果的显示 + - 画布操作及状态处理 + - 基础绘制效果 + - 复杂绘制效果 + - 几何图形绘制 + - 图片绘制 + - 字块绘制 +2. 在演示页面内点击绘制按钮,界面绘制出对应图案。 +3. 点击返回按钮,退出应用。 + +## 工程目录 + +``` +ArkTSGraphicsDraw +entry/src/main +├──ets +│ ├──drawing +| | └──pages +| | ├──BasicEffect.ets (基础绘制效果界面) +| | ├──CanvasGetResult.ets (画布的获取与绘制结果的显示界面) +| | ├──CanvasOperationState.ets (画布操作及状态处理界面) +| | ├──ComplexEffect.ets (复杂绘制效果界面) +| | ├──PixelMapDrawing.ets (图片绘制界面) +| | ├──ShapeDrawing.ets (几何形状绘制界面) +| | └──TextBlockDrawing.ets (字块绘制界面) +│ └──pages +│ └──Index.ets (UI主界面) +└──resources (资源文件) +entry/src/ohosTest/ets/ +├── test +| ├── Ability.test.ets (UI测试代码) +| └── List.test.ets (测试套件列表) +└── utils + └── Logger.ets (logger日志类) +``` + +## 具体实现 + +1. 自定义渲染节点 (`MyRenderNode`):继承自 `RenderNode`,重写draw函数绘制图案。 +2. 自定义节点控制器 (`MyNodeController`):继承自 `NodeController`,自定义`makeNode` 方法。创建了一个根节点 (`rootNode`),并将 `myRenderNode` 添加为根节点的子节点。通过设置 `backgroundColor`、`frame`、`pivot`、`scale` 等属性,来控制渲染节点的显示效果。 +3. 绘制内容的切换:`MyRenderNode`中的`drawFunctions` 数组存储了多个绘制函数,`draw` 方法根据当前的绘制函数索引调用对应的绘制函数。当绘制索引更改时,调用 `invalidate()`触发重绘,切换绘制内容。 + +## 相关权限 + +不涉及 + +## 依赖 + +不涉及。 + +## 约束和限制 + +1. 本示例支持标准系统上运行,支持设备:RK3568,手机;(注意:由于底层硬件原因,RK3568设备上无法运行PixelMapDrawing.ets中的editPixel函数,对应图片绘制(ArkTS)文档的编辑PixelMap中像素部分) + +2. 本示例支持API20版本SDK,版本号:6.0.0.47; + +3. 本示例已支持使DevEco Studio 6.0.0 Release (构建版本:6.0.0.858,构建 2025年10月10日)编译运行 + +## 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo code/DocsSample/Drawing/ArkTSGraphicsDraw/ > .git/info/sparse-checkout +git remote add origin OpenHarmony/applications_app_samples +git pull origin master +``` \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/build-profile.json5 b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/build-profile.json5 new file mode 100644 index 000000000..6df2d2dd9 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/build-profile.json5 @@ -0,0 +1,42 @@ +{ + "app": { + "signingConfigs": [ + ], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compatibleSdkVersion": "5.0.0(12)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug" + }, + { + "name": "release" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/code-linter.json5 b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/code-linter.json5 new file mode 100644 index 000000000..77b31b517 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/code-linter.json5 @@ -0,0 +1,20 @@ +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/.gitignore b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/.gitignore new file mode 100644 index 000000000..e2713a277 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/build-profile.json5 b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/build-profile.json5 new file mode 100644 index 000000000..e7569e305 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/build-profile.json5 @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/hvigorfile.ts b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/hvigorfile.ts new file mode 100644 index 000000000..e4f43d546 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/obfuscation-rules.txt b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/obfuscation-rules.txt new file mode 100644 index 000000000..272efb6ca --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/obfuscation-rules.txt @@ -0,0 +1,23 @@ +# Define project specific obfuscation rules here. +# You can include the obfuscation configuration files in the current module's build-profile.json5. +# +# For more details, see +# https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# Obfuscation options: +# -disable-obfuscation: disable all obfuscations +# -enable-property-obfuscation: obfuscate the property names +# -enable-toplevel-obfuscation: obfuscate the names in the global scope +# -compact: remove unnecessary blank spaces and all line feeds +# -remove-log: remove all console.* statements +# -print-namecache: print the name cache that contains the mapping from the old names to new names +# -apply-namecache: reuse the given cache file + +# Keep options: +# -keep-property-name: specifies property names that you want to keep +# -keep-global-name: specifies names that you want to keep in the global scope + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/oh-package.json5 b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/oh-package.json5 new file mode 100644 index 000000000..c9cb6c817 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/oh-package.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": {} +} + diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/BasicEffect.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/BasicEffect.ets new file mode 100644 index 000000000..628b3fa4b --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/BasicEffect.ets @@ -0,0 +1,188 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { UIContext, NodeController, FrameNode, RenderNode, DrawContext } from '@kit.ArkUI'; +import { drawing } from '@kit.ArkGraphics2D'; +import { VALUE_100, VALUE_400, VALUE_800 } from '../../pages/Index'; + +function drawFilling(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_create_brush] + // 设置画刷 + const brush = new drawing.Brush(); + // [End arkts_graphics_draw_create_brush] + // [Start arkts_graphics_draw_brush_set_color] + // 填充颜色设为红色 + brush.setColor(0xFF, 0xFF, 0x00, 0x00); + // [End arkts_graphics_draw_brush_set_color] + // [Start arkts_graphics_draw_brush_set_antialias] + // 开启抗锯齿效果 + brush.setAntiAlias(true); + // [End arkts_graphics_draw_brush_set_antialias] + // [Start arkts_graphics_draw_canvas_attach_brush] + // 为画布设置画刷 + canvas.attachBrush(brush); + // [End arkts_graphics_draw_canvas_attach_brush] + // 绘制一个圆心坐标(400,400)半径400的圆 + canvas.drawCircle(VALUE_400, VALUE_400, VALUE_400); + // [Start arkts_graphics_draw_canvas_detach_brush] + // 去除画刷 + canvas.detachBrush(); + // [End arkts_graphics_draw_canvas_detach_brush] +} + +function drawStroke(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_create_drawing_pen] + // 创建画笔 + let pen = new drawing.Pen(); + // [End arkts_graphics_draw_create_drawing_pen] + // [Start arkts_graphics_draw_pen_set_color] + // 设置颜色为红色 + pen.setColor(0xFF, 0xFF, 0x00, 0x00); + // [End arkts_graphics_draw_pen_set_color] + // [Start arkts_graphics_draw_pen_set_stroke_width] + // 设置线宽 + pen.setStrokeWidth(15); + // [End arkts_graphics_draw_pen_set_stroke_width] + // [Start arkts_graphics_draw_pen_set_antialias] + // 设置抗锯齿效果 + pen.setAntiAlias(true); + // [End arkts_graphics_draw_pen_set_antialias] + // [Start arkts_graphics_draw_pen_set_cap_style] + // 设置画笔线帽样式 + pen.setCapStyle(drawing.CapStyle.SQUARE_CAP); + // [End arkts_graphics_draw_pen_set_cap_style] + // [Start arkts_graphics_draw_pen_set_join_style] + // 设置画笔转角样式 + pen.setJoinStyle(drawing.JoinStyle.ROUND_JOIN); + // [End arkts_graphics_draw_pen_set_join_style] + // [Start arkts_graphics_draw_canvas_attach_pen] + // 为画布设置画笔 + canvas.attachPen(pen); + // [End arkts_graphics_draw_canvas_attach_pen] + // 创建U型路径 + let aX = VALUE_100; + let aY = VALUE_100; + let bX = VALUE_100; + let bY = VALUE_800; + let cX = VALUE_800; + let cY = VALUE_800; + let dX = VALUE_800; + let dY = VALUE_100; + let path = new drawing.Path(); + path.moveTo(aX, aY); + path.lineTo(bX, bY); + path.lineTo(cX, cY); + path.lineTo(dX, dY); + // 绘制U型路径 + canvas.drawPath(path); + // [Start arkts_graphics_draw_canvas_detach_pen] + // 去除描边效果 + canvas.detachPen(); + // [End arkts_graphics_draw_canvas_detach_pen] +} + +// 自定义RenderNode +class MyRenderNode extends RenderNode { + private drawFunctions: ((canvas: drawing.Canvas) => void)[] = []; // 存储绘制函数的数组 + private currentDrawIndex: number = 0; // 当前绘制函数的下标 + + // 添加绘制函数的接口 + addDrawFunction(func: (canvas: drawing.Canvas) => void) { + this.drawFunctions.push(func); + } + + // 设置当前绘制函数的下标 + setDrawIndex(index: number) { + if (index >= 0 && index < this.drawFunctions.length) { + this.currentDrawIndex = index; + this.invalidate(); // 触发重绘 + } + } + + async draw(context: DrawContext) { + const canvas = context.canvas; + const drawFunction = this.drawFunctions[this.currentDrawIndex]; + if (drawFunction) { + drawFunction(canvas); + } + } +} + +// 自定义NodeController +class MyNodeController extends NodeController { + private rootNode: FrameNode | null = null; + private myRenderNode = new MyRenderNode(); + + constructor() { + super(); + // 添加绘制函数 + this.myRenderNode.addDrawFunction(drawFilling); + this.myRenderNode.addDrawFunction(drawStroke); + } + + makeNode(uiContext: UIContext): FrameNode { + this.rootNode = new FrameNode(uiContext); + if (this.rootNode === null) { + return this.rootNode; + } + + const renderNode = this.rootNode.getRenderNode(); + if (renderNode !== null) { + this.myRenderNode.backgroundColor = 0xffffffff; // 白色背景 + this.myRenderNode.frame = { x: 0, y: 0, width: 4800, height: 4800 }; + this.myRenderNode.pivot = { x: 0.2, y: 0.8 }; + this.myRenderNode.scale = { x: 1, y: 1 }; + renderNode.appendChild(this.myRenderNode); + renderNode.clipToFrame = true; + } + return this.rootNode; + } + + // 暴露设置绘制函数下标的方法 + setDrawIndex(index: number) { + this.myRenderNode.setDrawIndex(index); + } +} + +@Entry +@Component +struct BaseEffect { + private nodeController: MyNodeController = new MyNodeController(); + @State flag: boolean = false; + + build() { + Row() { + Column() { + // 将自定义NodeController进行显示 + NodeContainer(this.nodeController) + .width('100%') + .height('70%'); + Row() { + Button($r('app.string.Filling')) + .onClick(() => { + this.nodeController.setDrawIndex(0); // 点击绘制填充效果 + }); + Button($r('app.string.Stroke')) + .onClick(() => { + this.nodeController.setDrawIndex(1); // 点击绘制描边效果 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + } + } + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/CanvasGetResult.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/CanvasGetResult.ets new file mode 100644 index 000000000..761e60790 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/CanvasGetResult.ets @@ -0,0 +1,177 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// 1. 导入依赖的相关文件 +// [Start arkts_graphics_draw_import_ui_and_graphics2d] +// [Start arkts_graphics_draw_import_ui] +import { UIContext, NodeController, FrameNode, RenderNode, DrawContext} from '@kit.ArkUI'; +// [End arkts_graphics_draw_import_ui] +import { image } from '@kit.ImageKit'; +import { taskpool } from '@kit.ArkTS'; +// [Start arkts_graphics_draw_import_graphics2d] +import { drawing } from '@kit.ArkGraphics2D'; +// [End arkts_graphics_draw_import_graphics2d] +// [End arkts_graphics_draw_import_ui_and_graphics2d] + +// [Start arkts_graphics_draw_direct_canvas_api] +// 2. 自定义 RenderNode +class MyRenderNodeDirectDisplay extends RenderNode { + // [Start arkts_graphics_draw_direct_canvas_api_rewrite] + async draw(context: DrawContext) { + const canvas = context.canvas; + if (canvas === null) { + console.error('Canvas is null.'); + return; + } + // 4. 自定义的绘制相关操作 + const brush = new drawing.Brush(); + if (brush === null) { + console.error('Brush is null.'); + return; + } else { + brush.setColor({red: 255, blue: 0, green: 0, alpha: 255}); + canvas.attachBrush(brush); + canvas.drawRect({left: 0, right: 300, top: 0, bottom: 300}); + } + } + // [End arkts_graphics_draw_direct_canvas_api_rewrite] +} +// [End arkts_graphics_draw_direct_canvas_api] + +// [Start arkts_graphics_draw_direct_canvas_api_node_control] +// 3. 自定义 NodeController +class MyNodeControllerDirectDisplay extends NodeController { + private rootNode: FrameNode | null = null; + private myRenderNode = new MyRenderNodeDirectDisplay(); + + makeNode(uiContext: UIContext): FrameNode { + this.rootNode = new FrameNode(uiContext); + if (this.rootNode === null) { + return this.rootNode; + } + const renderNode = this.rootNode.getRenderNode(); + if (renderNode !== null) { + this.myRenderNode.backgroundColor = 0xffffffff; + this.myRenderNode.frame = { x: 0, y: 0, width: 4800, height: 4800 }; + this.myRenderNode.pivot = { x: 0.2, y: 0.8 }; + this.myRenderNode.scale = { x: 1, y: 1 }; + renderNode.appendChild(this.myRenderNode); + renderNode.clipToFrame = true; + } + return this.rootNode; + } +} +// [End arkts_graphics_draw_direct_canvas_api_node_control] + +// [Start arkts_graphics_draw_indirect_canvas_api] +// 2. 自定义RenderNode +export class MyRenderNodeIndirectDisplay extends RenderNode { + private pixelMap: image.PixelMap | null = null; + setPixelMap(pixelMap: image.PixelMap) { + this.pixelMap = pixelMap; + } + + async draw(context: DrawContext) { + const canvas = context.canvas; + if (this.pixelMap != null) { + // 5.1 利用4中创建的PixelMap构造离屏Canvas + const canvas_ = new drawing.Canvas(this.pixelMap); + + // 5.2 离屏绘制 + const brush = new drawing.Brush(); + brush.setColor({ alpha: 255, red: 0, green: 0, blue: 255 }); + canvas_.attachBrush(brush); + canvas_.drawRect({ left: 150, right: 575, top: 0, bottom: 600 }); + + // 5.3 将离屏Canvas的绘制结果交给RenderNode + canvas.drawImage(this.pixelMap, 0, 0); + } + } +} + +@Concurrent +async function createPixelMapAsync() { + // 4000000为需要创建的像素buffer大小,取值为:height * width *4 + const color : ArrayBuffer = new ArrayBuffer(4000000); + let opts : image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: 1000, width: 1000 } }; + const pixel = await image.createPixelMap(color, opts); + return pixel; +} + +// 3. 自定义NodeController +export class MyNodeControllerIndirectDisplay extends NodeController { + private rootNode: FrameNode | null = null; + private myRenderNode = new MyRenderNodeIndirectDisplay(); + + // 4. 在MyNodeController的aboutToAppear中创建PixeMap + aboutToAppear(): void { + let task = new taskpool.Task(createPixelMapAsync); + taskpool.execute(task).then((pixel:Object)=>{ + this.myRenderNode.setPixelMap(pixel as image.PixelMap); + this.myRenderNode.invalidate(); + }) + } + + makeNode(uiContext: UIContext): FrameNode { + this.rootNode = new FrameNode(uiContext); + if (this.rootNode === null) { + return this.rootNode; + } + + const renderNode = this.rootNode.getRenderNode(); + if (renderNode !== null) { + this.myRenderNode.backgroundColor = 0xffffffff; + this.myRenderNode.frame = { x: 0, y: 0, width: 4800, height: 4800 }; + this.myRenderNode.pivot = { x: 0.2, y: 0.8 }; + this.myRenderNode.scale = { x: 1, y: 1 }; + renderNode.appendChild(this.myRenderNode); + renderNode.clipToFrame = true; + } + return this.rootNode; + } +} +// [End arkts_graphics_draw_indirect_canvas_api] + +// [Start arkts_graphics_draw_direct_and_indirect_canvas] +@Entry +@Component +struct RenderTest { + @State message: string = 'hello'; + myNodeController_1 = new MyNodeControllerDirectDisplay(); + myNodeController_2 = new MyNodeControllerIndirectDisplay(); + + build() { + Row() { + Column() { + Column(){ + Text($r('app.string.DirectCanvas')) + // 直接上屏显示画布 + NodeContainer(this.myNodeController_1) + .width('100%') + .height('40%') + } + Column(){ + Text($r('app.string.OffScreenCanvas')) + // 离屏画布 + NodeContainer(this.myNodeController_2) + .width('100%') + .height('40%') + .margin({ top: 20 }) + } + } + } + } +} +// [End arkts_graphics_draw_direct_and_indirect_canvas] \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/CanvasOperationState.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/CanvasOperationState.ets new file mode 100644 index 000000000..50227b33f --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/CanvasOperationState.ets @@ -0,0 +1,228 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { UIContext, NodeController, FrameNode, RenderNode, DrawContext } from '@kit.ArkUI'; +import { common2D, drawing } from '@kit.ArkGraphics2D'; +import { VALUE_200, VALUE_300, VALUE_600 } from '../../pages/Index'; + + +function drawClipOperation(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_canvas_clip] + // 创建画刷 + let brush = new drawing.Brush(); + // 设置颜色为蓝色 + brush.setColor(0xFF, 0x00, 0x00, 0xFF); + // 设置画刷填充效果 + canvas.attachBrush(brush); + // 创建矩形对象 + let rect: common2D.Rect = { left: VALUE_200, top: VALUE_200, right: VALUE_600, bottom: VALUE_600 }; + // 裁剪矩形区域 + canvas.clipRect(rect); + // 绘制圆形 + canvas.drawCircle(VALUE_300, VALUE_300, VALUE_300); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_canvas_clip] +} + +function drawTranslationOperation(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_canvas_translation] + // 创建画刷 + let brush = new drawing.Brush(); + // 设置颜色为红色 + brush.setColor(0xFF, 0xFF, 0x00, 0x00); + // 设置画刷填充效果 + canvas.attachBrush(brush); + // 执行平移操作 + canvas.translate(VALUE_300, VALUE_300); + // 绘制矩形 + canvas.drawRect({ left: VALUE_200, top: VALUE_200, right: VALUE_600, bottom: VALUE_600 }); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_canvas_translation] +} + +function drawRotationOperation(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_canvas_rotation] + // 创建画刷 + let brush = new drawing.Brush(); + // 设置颜色为红色 + brush.setColor(0xFF, 0xFF, 0x00, 0x00); + // 设置画刷填充效果 + canvas.attachBrush(brush); + // 顺时针旋转45度 + canvas.rotate(45, VALUE_200, VALUE_200); + // 绘制矩形 + canvas.drawRect({ left: VALUE_200, top: VALUE_200, right: VALUE_600, bottom: VALUE_600 }); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_canvas_rotation] +} + +function drawScaleOperation(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_canvas_scale] + // 创建画刷 + let brush = new drawing.Brush(); + // 设置颜色为红色 + brush.setColor({ alpha: 0xFF, red: 0xFF, green: 0x00, blue: 0x00 }); + // 设置画刷填充效果 + canvas.attachBrush(brush); + // 执行放大操作 + canvas.scale(2, 2); + // 绘制矩形 + canvas.drawRect({ left: VALUE_200, top: VALUE_200, right: VALUE_600, bottom: VALUE_600 }); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_canvas_scale] +} + +function drawStateOperation(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_canvas_state_operation] + // 创建画笔 + let pen = new drawing.Pen(); + // 设置颜色为红色 + pen.setColor({ alpha: 0xFF, red: 0xFF, green: 0x00, blue: 0x00 }); + // 设置描边宽度为20px + pen.setStrokeWidth(20); + // 设置画笔描边效果 + canvas.attachPen(pen); + // 保存操作,当前是不存在放大等操作的,这个原始状态会被保存下来 + canvas.save(); + // x轴和y轴方向分别放大2倍 + canvas.scale(2, 2); + // 绘制圆形,因为执行过放大操作,所以此时绘制的是大圆 + canvas.drawCircle(VALUE_300, VALUE_300, VALUE_200); + // 恢复操作,恢复到没有放大的原始状态 + canvas.restore(); + // 绘制圆形,因为已经恢复到没有放大的原始状态,所以此时绘制的是小圆 + canvas.drawCircle(VALUE_300, VALUE_300, VALUE_200); + // 去除描边效果 + canvas.detachPen(); + // [End arkts_graphics_draw_canvas_state_operation] +} + + +// 自定义RenderNode +class MyRenderNode extends RenderNode { + private drawFunctions: ((canvas: drawing.Canvas) => void)[] = []; // 存储绘制函数的数组 + private currentDrawIndex: number = 0; // 当前绘制函数的下标 + + // 添加绘制函数的接口 + addDrawFunction(func: (canvas: drawing.Canvas) => void) { + this.drawFunctions.push(func); + } + + // 设置当前绘制函数的下标 + setDrawIndex(index: number) { + if (index >= 0 && index < this.drawFunctions.length) { + this.currentDrawIndex = index; + this.invalidate(); // 触发重绘 + } + } + + async draw(context: DrawContext) { + const canvas = context.canvas; + const drawFunction = this.drawFunctions[this.currentDrawIndex]; + if (drawFunction) { + drawFunction(canvas); + } + } +} + +// 自定义NodeController +class MyNodeController extends NodeController { + private rootNode: FrameNode | null = null; + private myRenderNode = new MyRenderNode(); + + constructor() { + super(); + // 添加绘制函数 + this.myRenderNode.addDrawFunction(drawClipOperation); + this.myRenderNode.addDrawFunction(drawTranslationOperation); + this.myRenderNode.addDrawFunction(drawRotationOperation); + this.myRenderNode.addDrawFunction(drawScaleOperation); + this.myRenderNode.addDrawFunction(drawStateOperation); + } + + makeNode(uiContext: UIContext): FrameNode { + this.rootNode = new FrameNode(uiContext); + if (this.rootNode === null) { + return this.rootNode; + } + + const renderNode = this.rootNode.getRenderNode(); + if (renderNode !== null) { + this.myRenderNode.backgroundColor = 0xffffffff; // 白色背景 + this.myRenderNode.frame = { x: 0, y: 0, width: 4800, height: 4800 }; + this.myRenderNode.pivot = { x: 0.2, y: 0.8 }; + this.myRenderNode.scale = { x: 1, y: 1 }; + renderNode.appendChild(this.myRenderNode); + renderNode.clipToFrame = true; + } + return this.rootNode; + } + + // 暴露设置绘制函数下标的方法 + setDrawIndex(index: number) { + this.myRenderNode.setDrawIndex(index); + } +} + +@Entry +@Component +struct CanvasOperationState { + private nodeController: MyNodeController = new MyNodeController(); + + build() { + Row() { + Column() { + // 将自定义NodeController进行显示 + NodeContainer(this.nodeController) + .width('100%') + .height('70%'); + Row() { + Button($r('app.string.ClipOperation')) + .onClick(() => { + this.nodeController.setDrawIndex(0); // 点击绘制裁剪操作 + }); + Button($r('app.string.TranslationOperation')) + .onClick(() => { + this.nodeController.setDrawIndex(1); // 点击绘制平移操作 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + Row() { + Button($r('app.string.RotationOperation')) + .onClick(() => { + this.nodeController.setDrawIndex(2); // 点击绘制旋转操作 + }); + Button($r('app.string.ScaleOperation')) + .onClick(() => { + this.nodeController.setDrawIndex(3); // 点击绘制缩放操作 + }); + Button($r('app.string.StateOperation')) + .onClick(() => { + this.nodeController.setDrawIndex(4); // 点击绘制画布状态操作 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + } + } + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/ComplexEffect.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/ComplexEffect.ets new file mode 100644 index 000000000..607d173be --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/ComplexEffect.ets @@ -0,0 +1,417 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// [Start arkts_graphics_draw_import_ui_and_graphics2d] +import { DrawContext, FrameNode, NodeController, RenderNode, UIContext } from '@kit.ArkUI'; +import { common2D, drawing } from '@kit.ArkGraphics2D'; +// [End arkts_graphics_draw_import_ui_and_graphics2d] +import { + VALUE_100, + VALUE_200, + VALUE_300, + VALUE_500, + VALUE_600, + VALUE_700, + VALUE_900, + VALUE_1000 +} from '../../pages/Index'; + +function drawMixedMode(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_mixed_mode] + // 创建画刷 + let brush = new drawing.Brush(); + // 设置目标像素颜色,即矩形的颜色 + brush.setColor(0xFF, 0xFF, 0x00, 0x00); + // 将目标像素的画刷效果设置到Canvas中 + canvas.attachBrush(brush); + // 创建矩形对象 + let rect: common2D.Rect = { + left: VALUE_100, + top: VALUE_100, + right: VALUE_600, + bottom: VALUE_600 + }; + // 绘制矩形(目标像素) + canvas.drawRect(rect); + // 设置源像素颜色,即圆形的颜色 + brush.setColor(0xFF, 0x00, 0x00, 0xFF); + // 设置混合模式为叠加模式 + brush.setBlendMode(drawing.BlendMode.PLUS); + // 将源像素的画刷效果设置到Canvas中 + canvas.attachBrush(brush); + // 绘制圆(源像素) + canvas.drawCircle(VALUE_600, VALUE_600, VALUE_300); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_mixed_mode] +} + +// [Start arkts_graphics_draw_render_node] +function drawRenderNode(canvas: drawing.Canvas) { + canvas.saveLayer(null, null); + const brushCircle = new drawing.Brush(); + const colorCircle: common2D.Color = {alpha: 255, red: 0, green: 0, blue: 255}; + brushCircle.setColor(colorCircle); + canvas.attachBrush(brushCircle); + canvas.drawCircle(500, 500, 200); + const brush = new drawing.Brush(); + // 设置混合模式 + brush.setBlendMode(drawing.BlendMode.SRC_IN); + canvas.saveLayer(null, brush); + + const brushRect = new drawing.Brush(); + const colorRect: common2D.Color = {alpha: 255, red: 255, green: 255, blue: 0}; + brushRect.setColor(colorRect); + canvas.attachBrush(brushRect); + const rect: common2D.Rect = {left:100, top:100, right:500, bottom:500}; + canvas.drawRect(rect); + canvas.restore(); + canvas.restore(); + canvas.detachBrush(); +} +// [End arkts_graphics_draw_render_node] + +function drawPathEffect(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_path_effect] + // 创建画笔 + let pen = new drawing.Pen(); + // 设置线宽 + pen.setStrokeWidth(10.0); + // 设置颜色 + pen.setColor(0xFF, 0xFF, 0x00, 0x00); + // 表示10px的实线,5px的间隔,2px的实线,5px的间隔,以此循环 + let intervals = [10, 5, 2, 5]; + // 设置虚线路径效果 + let effect = drawing.PathEffect.createDashPathEffect(intervals, 0); + pen.setPathEffect(effect); + // 设置画笔描边效果 + canvas.attachPen(pen); + // 创建矩形 + let rect: common2D.Rect = { + left: VALUE_200, + top: VALUE_200, + right: VALUE_1000, + bottom: VALUE_700 + }; + // 绘制矩形 + canvas.drawRect(rect); + // 去除描边效果 + canvas.detachPen(); + // [End arkts_graphics_draw_path_effect] +} + +function drawLinearGradient(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_linear_gradient] + let startPt: common2D.Point = { x: VALUE_100, y: VALUE_100 }; + let endPt: common2D.Point = { x: VALUE_900, y: VALUE_900 }; + let colors = [0xFFFFFF00, 0xFFFF0000, 0xFF0000FF]; + // 创建线性渐变着色器 + let shaderEffect = drawing.ShaderEffect.createLinearGradient(startPt, endPt, colors, drawing.TileMode.CLAMP); + // 创建画刷 + let brush = new drawing.Brush(); + // 设置线性着色器 + brush.setShaderEffect(shaderEffect); + // 设置画刷填充效果 + canvas.attachBrush(brush); + let rect: common2D.Rect = { + left: VALUE_100, + top: VALUE_100, + right: VALUE_900, + bottom: VALUE_900 + }; + // 绘制矩形 + canvas.drawRect(rect); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_linear_gradient] +} + +function drawPathGradient(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_path_gradient] + let centerPt: common2D.Point = { x: VALUE_500, y: VALUE_500 }; + let colors = [0xFFFF0000, 0xFF00FF00, 0xFF0000FF]; + // 创建径向渐变着色器 + let shaderEffect = drawing.ShaderEffect.createRadialGradient(centerPt, VALUE_600, colors, drawing.TileMode.CLAMP); + // 创建画刷 + let brush = new drawing.Brush(); + // 设置径向渐变着色器 + brush.setShaderEffect(shaderEffect); + // 设置画刷填充效果 + canvas.attachBrush(brush); + let rect: common2D.Rect = { + left: VALUE_100, + top: VALUE_100, + right: VALUE_900, + bottom: VALUE_900 + }; + // 绘制矩形 + canvas.drawRect(rect); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_path_gradient] +} + +function drawSectorGradient(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_sector_gradient] + let centerPt: common2D.Point = { x: VALUE_500, y: VALUE_500 }; + let colors = [0xFF00FFFF, 0xFFFF00FF, 0xFFFFFF00]; + // 创建扇形渐变着色器 + let shaderEffect = drawing.ShaderEffect.createSweepGradient(centerPt, colors, drawing.TileMode.CLAMP, 0, 360); + // 创建画刷 + let brush = new drawing.Brush(); + // 设置扇形渐变着色器 + brush.setShaderEffect(shaderEffect); + // 设置画刷填充效果 + canvas.attachBrush(brush); + let rect: common2D.Rect = { + left: VALUE_100, + top: VALUE_100, + right: VALUE_900, + bottom: VALUE_900 + }; + // 绘制矩形 + canvas.drawRect(rect); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_sector_gradient] +} + +function drawColorFilter(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_color_filter] + // 创建画刷 + let brush = new drawing.Brush(); + // 设置颜色 + brush.setColor(0xFF, 0xFF, 0x00, 0x00); + // 设置颜色矩阵 + let matrix: number[] = [ + 1, 0, 0, 0, 0, + 0, 1, 0, 0, 0, + 0, 0, 0.5, 0.5, 0, + 0, 0, 0.5, 0.5, 0 + ]; + // 创建5x4颜色矩阵的颜色滤波器 + let filter = drawing.ColorFilter.createMatrixColorFilter(matrix); + // 设置颜色滤波器 + brush.setColorFilter(filter); + // 设置画刷填充效果 + canvas.attachBrush(brush); + let rect: common2D.Rect = { + left: VALUE_300, + top: VALUE_300, + right: VALUE_900, + bottom: VALUE_900 + }; + // 绘制矩形 + canvas.drawRect(rect); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_color_filter] +} + +function drawImageFilter(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_image_filter] + // 设置画笔 + let pen = new drawing.Pen(); + // 设置线宽 + pen.setStrokeWidth(10.0); + // 设置颜色 + pen.setColor(0xFF, 0xFF, 0x00, 0x00); + // 创建模糊效果图像滤波器 + let filter = drawing.ImageFilter.createBlurImageFilter(20, 20, drawing.TileMode.CLAMP); + // 设置图像滤波器 + pen.setImageFilter(filter); + // 设置画笔描边效果 + canvas.attachPen(pen); + let rect: common2D.Rect = { + left: VALUE_300, + top: VALUE_300, + right: VALUE_900, + bottom: VALUE_900 + }; + // 绘制矩形 + canvas.drawRect(rect); + // 去除描边效果 + canvas.detachPen(); + // [End arkts_graphics_draw_image_filter] +} + +function drawMaskFilter(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_mask_filter] + // 创建画笔 + let pen = new drawing.Pen(); + // 设置线宽 + pen.setStrokeWidth(10.0); + // 设置颜色 + pen.setColor(0xFF, 0xFF, 0x00, 0x00); + // 创建模糊效果的蒙版滤波器 + let filter = drawing.MaskFilter.createBlurMaskFilter(drawing.BlurType.NORMAL, 20); + // 设置模糊效果 + pen.setMaskFilter(filter); + // 设置画笔描边效果 + canvas.attachPen(pen); + let rect: common2D.Rect = { + left: VALUE_300, + top: VALUE_300, + right: VALUE_900, + bottom: VALUE_900 + }; + // 绘制矩形 + canvas.drawRect(rect); + // 去除描边效果 + canvas.detachPen(); + // [End arkts_graphics_draw_mask_filter] +} + +// 自定义RenderNode +class MyRenderNode extends RenderNode { + private drawFunctions: ((canvas: drawing.Canvas) => void)[] = []; // 存储绘制函数的数组 + private currentDrawIndex: number = 0; // 当前绘制函数的下标 + + // 添加绘制函数的接口 + addDrawFunction(func: (canvas: drawing.Canvas) => void) { + this.drawFunctions.push(func); + } + + // 设置当前绘制函数的下标 + setDrawIndex(index: number) { + if (index >= 0 && index < this.drawFunctions.length) { + this.currentDrawIndex = index; + this.invalidate(); // 触发重绘 + } + } + + async draw(context: DrawContext) { + const canvas = context.canvas; + const drawFunction = this.drawFunctions[this.currentDrawIndex]; + if (drawFunction) { + drawFunction(canvas); + } + } +} + +// 自定义NodeController +class MyNodeController extends NodeController { + private myRenderNode = new MyRenderNode(); + private rootNode: FrameNode | null = null; + + constructor() { + super(); + // 添加绘制函数 + this.myRenderNode.addDrawFunction(drawRenderNode); + this.myRenderNode.addDrawFunction(drawPathEffect); + this.myRenderNode.addDrawFunction(drawLinearGradient); + this.myRenderNode.addDrawFunction(drawPathGradient); + this.myRenderNode.addDrawFunction(drawSectorGradient); + this.myRenderNode.addDrawFunction(drawColorFilter); + this.myRenderNode.addDrawFunction(drawImageFilter); + this.myRenderNode.addDrawFunction(drawMaskFilter); + this.myRenderNode.addDrawFunction(drawMixedMode); + } + + makeNode(uiContext: UIContext): FrameNode { + this.rootNode = new FrameNode(uiContext); + if (this.rootNode === null) { + return this.rootNode; + } + + const renderNode = this.rootNode.getRenderNode(); + if (renderNode !== null) { + this.myRenderNode.backgroundColor = 0xffffffff; // 白色背景 + this.myRenderNode.frame = { + x: 0, + y: 0, + width: 4800, + height: 4800 + }; + this.myRenderNode.pivot = { x: 0.2, y: 0.8 }; + this.myRenderNode.scale = { x: 1, y: 1 }; + renderNode.appendChild(this.myRenderNode); + renderNode.clipToFrame = true; + } + return this.rootNode; + } + + // 暴露设置绘制函数下标的方法 + setDrawIndex(index: number) { + this.myRenderNode.setDrawIndex(index); + this.myRenderNode.backgroundColor = 0xffffffff; // 其余模式使用白色背景 + } +} + +@Entry +@Component +struct ComplexEffect { + private nodeController: MyNodeController = new MyNodeController(); + + build() { + Row() { + Column() { + // 将自定义NodeController进行显示 + NodeContainer(this.nodeController) + .width('100%') + .height('70%'); + Row() { + Button($r('app.string.RenderNode')) + .onClick(() => { + this.nodeController.setDrawIndex(0); // 点击绘制混合模式 + }); + Button($r('app.string.PathEffect')) + .onClick(() => { + this.nodeController.setDrawIndex(1); // 点击绘制路径效果 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + + Row() { + Button($r('app.string.LinearGradient')) + .onClick(() => { + this.nodeController.setDrawIndex(2); // 点击绘制线性渐变着色器效果 + }); + Button($r('app.string.PathGradient')) + .onClick(() => { + this.nodeController.setDrawIndex(3); // 点击绘制径向渐变着色器效果 + }); + Button($r('app.string.SectorGradient')) + .onClick(() => { + this.nodeController.setDrawIndex(4); // 点击绘制扇形渐变着色器效果 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + + Row() { + Button($r('app.string.ColorFilter')) + .onClick(() => { + this.nodeController.setDrawIndex(5); // 点击绘制颜色滤波器效果 + }); + Button($r('app.string.ImageFilter')) + .onClick(() => { + this.nodeController.setDrawIndex(6); // 点击绘制图像滤波器效果 + }); + Button($r('app.string.MaskFilter')) + .onClick(() => { + this.nodeController.setDrawIndex(7); // 点击绘制蒙版滤波器效果 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + } + } + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/PixelMapDrawing.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/PixelMapDrawing.ets new file mode 100644 index 000000000..e0106193d --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/PixelMapDrawing.ets @@ -0,0 +1,192 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { DrawContext, FrameNode, NodeController, RenderNode, UIContext } from '@kit.ArkUI'; +import { drawing } from '@kit.ArkGraphics2D'; +import { image } from '@kit.ImageKit'; +import { VALUE_100, VALUE_200 } from '../../pages/Index'; + +let pixelMap: image.PixelMap; + +function drawImage(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_image] + // 图片宽高 + let width = 600; + let height = 400; + // 字节长度,RGBA_8888每个像素占4字节 + let byteLength = width * height * 4; + const color: ArrayBuffer = new ArrayBuffer(byteLength); + let bufferArr = new Uint8Array(color); + for (let i = 0; i < bufferArr.length; i += 4) { + // 遍历并编辑每个像素,从而形成红绿蓝相间的条纹 + bufferArr[i] = 0x00; + bufferArr[i+1] = 0x00; + bufferArr[i+2] = 0x00; + bufferArr[i+3] = 0xFF; + let n = Math.floor(i / 80) % 3; + if (n == 0) { + bufferArr[i] = 0xFF; + } else if (n == 1) { + bufferArr[i+1] = 0xFF; + } else { + bufferArr[i+2] = 0xFF; + } + } + // 设置像素属性 + let opts: image.InitializationOptions = + { editable: true, pixelFormat: image.PixelMapFormat.RGBA_8888, size: { height: height, width: width } }; + // 创建PixelMap + pixelMap = image.createPixelMapSync(color, opts); + // [End arkts_graphics_draw_image] + // [Start arkts_graphics_draw_image_pixel_map] + // 为了使图片完全显示,修改绘制起点参数为(0,0) + canvas.drawImage(pixelMap, 0, 0); + // [End arkts_graphics_draw_image_pixel_map] +} + +function editPixel(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_edit_pixel] + // 设置编辑区域的宽高 + let innerWidth = 400; + let innerHeight = 200; + // 编辑区域的字节长度,RGBA_8888每个像素占4字节 + let innerByteLength = innerWidth * innerHeight * 4; + const innerColor: ArrayBuffer = new ArrayBuffer(innerByteLength); + let innerBufferArr = new Uint8Array(innerColor); + for (let i = 0; i < innerBufferArr.length; i += 4) { + // 编辑区域的像素都设置为黑白相间条纹 + let n = Math.floor(i / 80) % 2; + if (n == 0) { + innerBufferArr[i] = 0x00; + innerBufferArr[i+1] = 0x00; + innerBufferArr[i+2] = 0x00; + } else { + innerBufferArr[i] = 0xFF; + innerBufferArr[i+1] = 0xFF; + innerBufferArr[i+2] = 0xFF; + } + innerBufferArr[i+3] = 0xFF; + } + // 设置编辑区域的像素、宽高、偏移量等 + const area: image.PositionArea = { + pixels: innerColor, + offset: 0, + stride: innerWidth * 4, + region: { size: { height: innerHeight, width: innerWidth }, x: 100, y: 100 } + }; + // 编辑位图,形成中间的黑白相间条纹 + pixelMap.writePixelsSync(area); + // 为了使图片完全显示,修改绘制起点参数为(0,0) + canvas.drawImage(pixelMap, 0, 0); + // [End arkts_graphics_draw_edit_pixel] +} + +// 自定义RenderNode +class MyRenderNode extends RenderNode { + private drawFunctions: ((canvas: drawing.Canvas) => void)[] = []; // 存储绘制函数的数组 + private currentDrawIndex: number = 0; // 当前绘制函数的下标 + + // 添加绘制函数的接口 + addDrawFunction(func: (canvas: drawing.Canvas) => void) { + this.drawFunctions.push(func); + } + + // 设置当前绘制函数的下标 + setDrawIndex(index: number) { + if (index >= 0 && index < this.drawFunctions.length) { + this.currentDrawIndex = index; + this.invalidate(); // 触发重绘 + } + } + + async draw(context: DrawContext) { + const canvas = context.canvas; + const drawFunction = this.drawFunctions[this.currentDrawIndex]; + if (drawFunction) { + drawFunction(canvas); + } + } +} + +// 自定义NodeController +class MyNodeController extends NodeController { + private myRenderNode = new MyRenderNode(); + private rootNode: FrameNode | null = null; + + constructor() { + super(); + // 添加绘制函数 + this.myRenderNode.addDrawFunction(drawImage); + this.myRenderNode.addDrawFunction(editPixel); + } + + makeNode(uiContext: UIContext): FrameNode { + this.rootNode = new FrameNode(uiContext); + if (this.rootNode === null) { + return this.rootNode; + } + + const renderNode = this.rootNode.getRenderNode(); + if (renderNode !== null) { + this.myRenderNode.backgroundColor = 0xffffffff; // 白色背景 + this.myRenderNode.frame = { + x: 0, + y: 0, + width: 4800, + height: 4800 + }; + this.myRenderNode.pivot = { x: 0.2, y: 0.8 }; + this.myRenderNode.scale = { x: 1, y: 1 }; + renderNode.appendChild(this.myRenderNode); + renderNode.clipToFrame = true; + } + return this.rootNode; + } + + // 暴露设置绘制函数下标的方法 + setDrawIndex(index: number) { + this.myRenderNode.setDrawIndex(index); + } +} + +@Entry +@Component +struct ImageDrawing { + private nodeController: MyNodeController = new MyNodeController(); + + build() { + Row() { + Column() { + // 将自定义NodeController进行显示 + NodeContainer(this.nodeController) + .width('100%') + .height('70%'); + Row() { + Button($r('app.string.PixelMap')) + .onClick(() => { + this.nodeController.setDrawIndex(0); // 点击绘制位图 + }); + Button($r('app.string.EditMiddlePixel')) + .onClick(() => { + this.nodeController.setDrawIndex(1); // 点击编辑位图像素 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + } + } + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/ShapeDrawing.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/ShapeDrawing.ets new file mode 100644 index 000000000..5df7176e9 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/ShapeDrawing.ets @@ -0,0 +1,348 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { DrawContext, FrameNode, NodeController, RenderNode, UIContext } from '@kit.ArkUI'; +import { common2D, drawing } from '@kit.ArkGraphics2D'; +import { + VALUE_100, + VALUE_200, + VALUE_300, + VALUE_400, + VALUE_500, + VALUE_600, + VALUE_630, + VALUE_700, + VALUE_800, + VALUE_900, + VALUE_1000, + VALUE_1800 +} from '../../pages/Index'; + +function drawPoint(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_point] + // 设置画笔 + let pen = new drawing.Pen(); + // 设置颜色 + pen.setColor(0xFF, 0xFF, 0x00, 0x00); + // 设置线宽 + pen.setStrokeWidth(40); + // 设置画笔描边效果 + canvas.attachPen(pen); + // 绘制5个点 + canvas.drawPoint(VALUE_200, VALUE_200); + canvas.drawPoint(VALUE_400, VALUE_400); + canvas.drawPoint(VALUE_600, VALUE_600); + canvas.drawPoint(VALUE_800, VALUE_800); + canvas.drawPoint(VALUE_1000, VALUE_1000); + // 去除描边效果 + canvas.detachPen(); + // [End arkts_graphics_draw_point] +} + +function drawArc(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_arc] + // 创建画笔 + let pen = new drawing.Pen(); + // 设置颜色 + pen.setColor({ + alpha: 0xFF, + red: 0xFF, + green: 0x00, + blue: 0x00 + }); + // 设置线宽 + pen.setStrokeWidth(20); + // 设置画笔描边效果 + canvas.attachPen(pen); + // 创建矩形对象 + const rect: common2D.Rect = { + left: VALUE_100, + top: VALUE_200, + right: VALUE_1000, + bottom: VALUE_600 + }; + // 绘制矩形 + canvas.drawArc(rect, 0, 180); + // 去除描边效果 + canvas.detachPen(); + // [End arkts_graphics_draw_arc] +} + +function drawCircle(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_circle] + // 创建画笔 + let pen = new drawing.Pen(); + // 设置颜色 + pen.setColor({ + alpha: 0xFF, + red: 0xFF, + green: 0x00, + blue: 0x00 + }); + // 设置线宽 + pen.setStrokeWidth(20); + // 设置画笔描边效果 + canvas.attachPen(pen); + // 绘制圆 + canvas.drawCircle(VALUE_630, VALUE_630, VALUE_500); + // 去除描边效果 + canvas.detachPen(); + // [End arkts_graphics_draw_circle] +} + +function drawPath(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_path] + let height_ = VALUE_1800; + let width_ = VALUE_1800; + let len = height_ / 4; + let aX = width_ / 3; + let aY = height_ / 6; + let dX = aX - len * Math.sin(18.0); + let dY = aY + len * Math.cos(18.0); + let cX = aX + len * Math.sin(18.0); + let cY = dY; + let bX = aX + (len / 2.0); + let bY = aY + Math.sqrt((cX - dX) * (cX - dX) + (len / 2.0) * (len / 2.0)); + let eX = aX - (len / 2.0); + let eY = bY; + + // 创建一个path对象,然后使用接口连接成一个五角星形状 + let path = new drawing.Path(); + // 指定path的起始位置 + path.moveTo(aX, aY); + // 用直线连接到目标点 + path.lineTo(bX, bY); + path.lineTo(cX, cY); + path.lineTo(dX, dY); + path.lineTo(eX, eY); + // 闭合形状,path绘制完毕 + path.close(); + + // 创建画笔对象 + let pen = new drawing.Pen(); + // 设置抗锯齿 + pen.setAntiAlias(true); + // 设置描边颜色 + pen.setColor(0xFF, 0xFF, 0x00, 0x00); + // 设置线宽 + pen.setStrokeWidth(10.0); + // 设置画笔描边效果 + canvas.attachPen(pen); + // 创建画刷 + let brush = new drawing.Brush(); + // 设置填充颜色 + brush.setColor(0xFF, 0x00, 0xFF, 0x00); + // 设置画刷填充效果 + canvas.attachBrush(brush); + // 绘制路径 + canvas.drawPath(path); + // 去除填充效果 + canvas.detachBrush(); + // 去除描边效果 + canvas.detachPen(); + // [End arkts_graphics_draw_path] +} + +function drawRegion(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_region] + // 创建画刷 + let brush = new drawing.Brush(); + // 设置颜色 + brush.setColor(0xFF, 0xFF, 0x00, 0x00); + // 设置画刷填充效果 + canvas.attachBrush(brush); + // 创建左上角的region1 + let region1 = new drawing.Region(); + region1.setRect(VALUE_100, VALUE_100, VALUE_600, VALUE_600); + // 创建右下角的region2 + let region2 = new drawing.Region(); + region2.setRect(VALUE_300, VALUE_300, VALUE_900, VALUE_900); + // 将两个区域以XOR的方式组合 + region1.op(region2, drawing.RegionOp.XOR); + // 绘制区域 + canvas.drawRegion(region1); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_region] +} + +function drawRect(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_rect] + // 创建画刷 + let brush = new drawing.Brush(); + // 设置颜色 + brush.setColor(0xFF, 0xFF, 0x00, 0x00); + // 设置画刷填充效果 + canvas.attachBrush(brush); + // 绘制矩形 + canvas.drawRect(VALUE_200, VALUE_200, VALUE_1000, VALUE_700); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_rect] +} + +function drawRoundRect(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_round_rect] + // 创建画刷 + let brush = new drawing.Brush(); + // 设置颜色 + brush.setColor(0xFF, 0xFF, 0x00, 0x00); + // 设置画刷填充效果 + canvas.attachBrush(brush); + // 创建矩形对象 + let rect: common2D.Rect = { + left: VALUE_200, + top: VALUE_200, + right: VALUE_1000, + bottom: VALUE_700 + }; + console.info('rect:', rect.right); + // 创建圆角矩形对象 + let rrect = new drawing.RoundRect(rect, 30, 30); + // 绘制圆角矩形 + canvas.drawRoundRect(rrect); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_round_rect] +} + +// 自定义RenderNode +class MyRenderNode extends RenderNode { + private drawFunctions: ((canvas: drawing.Canvas) => void)[] = []; // 存储绘制函数的数组 + private currentDrawIndex: number = 0; // 当前绘制函数的下标 + + // 添加绘制函数的接口 + addDrawFunction(func: (canvas: drawing.Canvas) => void) { + this.drawFunctions.push(func); + } + + // 设置当前绘制函数的下标 + setDrawIndex(index: number) { + if (index >= 0 && index < this.drawFunctions.length) { + this.currentDrawIndex = index; + this.invalidate(); // 触发重绘 + } + } + + async draw(context: DrawContext) { + const canvas = context.canvas; + const drawFunction = this.drawFunctions[this.currentDrawIndex]; + if (drawFunction) { + drawFunction(canvas); + } + } +} + +// 自定义NodeController +class MyNodeController extends NodeController { + private myRenderNode = new MyRenderNode(); + private rootNode: FrameNode | null = null; + + constructor() { + super(); + // 添加绘制函数 + this.myRenderNode.addDrawFunction(drawPoint); + this.myRenderNode.addDrawFunction(drawArc); + this.myRenderNode.addDrawFunction(drawCircle); + this.myRenderNode.addDrawFunction(drawPath); + this.myRenderNode.addDrawFunction(drawRegion); + this.myRenderNode.addDrawFunction(drawRect); + this.myRenderNode.addDrawFunction(drawRoundRect); + } + + makeNode(uiContext: UIContext): FrameNode { + this.rootNode = new FrameNode(uiContext); + if (this.rootNode === null) { + return this.rootNode; + } + + const renderNode = this.rootNode.getRenderNode(); + if (renderNode !== null) { + this.myRenderNode.backgroundColor = 0xffffffff; // 白色背景 + this.myRenderNode.frame = { + x: 0, + y: 0, + width: 4800, + height: 4800 + }; + this.myRenderNode.pivot = { x: 0.2, y: 0.8 }; + this.myRenderNode.scale = { x: 1, y: 1 }; + renderNode.appendChild(this.myRenderNode); + renderNode.clipToFrame = true; + } + return this.rootNode; + } + + // 暴露设置绘制函数下标的方法 + setDrawIndex(index: number) { + this.myRenderNode.setDrawIndex(index); + } +} + +@Entry +@Component +struct ShapeDrawing { + private nodeController: MyNodeController = new MyNodeController(); + + build() { + Row() { + Column() { + // 将自定义NodeController进行显示 + NodeContainer(this.nodeController) + .width('100%') + .height('70%'); + Row() { + Button($r('app.string.Point')) + .onClick(() => { + this.nodeController.setDrawIndex(0); // 点击绘制点 + }); + Button($r('app.string.Arc')) + .onClick(() => { + this.nodeController.setDrawIndex(1); // 点击绘制圆弧 + }); + Button($r('app.string.Circle')) + .onClick(() => { + this.nodeController.setDrawIndex(2); // 点击绘制圆 + }); + Button($r('app.string.Path')) + .onClick(() => { + this.nodeController.setDrawIndex(3); // 点击绘制路径 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + + Row() { + Button($r('app.string.Region')) + .onClick(() => { + this.nodeController.setDrawIndex(4); // 点击绘制区域 + }); + Button($r('app.string.Rect')) + .onClick(() => { + this.nodeController.setDrawIndex(5); // 点击绘制矩形 + }); + Button($r('app.string.RoundRect')) + .onClick(() => { + this.nodeController.setDrawIndex(6); // 点击绘制圆角矩形 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + } + } + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/TextBlockDrawing.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/TextBlockDrawing.ets new file mode 100644 index 000000000..8448f0677 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/drawing/pages/TextBlockDrawing.ets @@ -0,0 +1,299 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { UIContext, NodeController, FrameNode, RenderNode, DrawContext } from '@kit.ArkUI'; +import { common2D, drawing } from '@kit.ArkGraphics2D'; +import { VALUE_100, VALUE_200, VALUE_300, VALUE_900 } from '../../pages/Index'; +import { STROKE_SAMPLE } from '../../pages/Index'; + +function drawBaseText(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_base_text] + // 创建字型对象 + const font = new drawing.Font(); + // 设置字体大小 + font.setSize(100); + // 创建字块对象 + const textBlob = drawing.TextBlob.makeFromString('Hello world', font, drawing.TextEncoding.TEXT_ENCODING_UTF8); + // 绘制字块 + canvas.drawTextBlob(textBlob, VALUE_200, VALUE_300); + // [End arkts_graphics_draw_base_text] +} + +function drawStrokeText(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_stroke_text] + // 创建画笔 + let pen = new drawing.Pen(); + // 设置抗锯齿 + pen.setAntiAlias(true); + // 设置描边线宽 + pen.setStrokeWidth(3.0); + // 设置描边颜色 + pen.setColor(0xFF, 0xFF, 0x00, 0x00); + // 创建字型对象 + const font = new drawing.Font(); + // 设置字体大小 + font.setSize(100); + // 添加画笔描边效果 + canvas.attachPen(pen); + // 创建字块对象 + const textBlob = drawing.TextBlob.makeFromString('Hello world', font, drawing.TextEncoding.TEXT_ENCODING_UTF8); + // 绘制字块 + canvas.drawTextBlob(textBlob, VALUE_200, VALUE_300); + // 去除描边效果 + canvas.detachPen(); + // [End arkts_graphics_draw_stroke_text] +} + +function drawChineseStrokeText(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_chinese_stroke_text] + + // 创建画刷 + let brush = new drawing.Brush(); + // 创建画笔 + let pen = new drawing.Pen(); + // 设置抗锯齿 + brush.setAntiAlias(true); + // 设置描边颜色 + brush.setColor(0xFF, 0xFF, 0xFF, 0xFF); + + pen.setAntiAlias(true); + // 设置描边线宽 + pen.setStrokeWidth(3.0); + // 设置描边颜色 + pen.setColor(0xFF, 0xFF, 0x00, 0x00); + + // 创建字型对象 + const font = new drawing.Font(); + // 设置字体大小 + font.setSize(100); + // 添加画笔描边效果 + canvas.attachPen(pen); + // 创建字块对象 + const textBlob = drawing.TextBlob.makeFromString(STROKE_SAMPLE, font, drawing.TextEncoding.TEXT_ENCODING_UTF8); + // 绘制字块 + canvas.drawTextBlob(textBlob, VALUE_200, VALUE_300); + // 去除描边效果 + canvas.detachPen(); + + canvas.attachBrush(brush); + canvas.drawTextBlob(textBlob, VALUE_200, VALUE_300); + canvas.detachBrush(); + // [End arkts_graphics_draw_chinese_stroke_text] +} + +function drawGradientText(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_gradient_text] + let startPt: common2D.Point = { x: VALUE_100, y: VALUE_100 }; + let endPt: common2D.Point = { x: VALUE_900, y: VALUE_900 }; + let colors = [0xFFFFFF00, 0xFFFF0000, 0xFF0000FF]; + // 创建线性渐变着色器 + let shaderEffect = drawing.ShaderEffect.createLinearGradient(startPt, endPt, colors, drawing.TileMode.CLAMP); + // 创建画刷 + let brush = new drawing.Brush(); + // 设置着色器 + brush.setShaderEffect(shaderEffect); + // 添加画刷填充效果 + canvas.attachBrush(brush); + // 创建字型 + const font = new drawing.Font(); + // 设置字体大小 + font.setSize(VALUE_200); + // 创建字块 + const textBlob = drawing.TextBlob.makeFromString('Hello world', font, drawing.TextEncoding.TEXT_ENCODING_UTF8); + // 绘制字块 + canvas.drawTextBlob(textBlob, VALUE_100, VALUE_300); + // 去除填充效果 + canvas.detachBrush(); + // [End arkts_graphics_draw_gradient_text] +} + +function drawThemeText(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_theme_text] + // 创建线性渐变着色器 + const font = new drawing.Font(); + // 设置文字大小 + font.setSize(100); + // 设置跟随主题字体 + font.setThemeFontFollowed(true); + // 创建字块对象 + const textBlob = drawing.TextBlob.makeFromString('Hello World', font, drawing.TextEncoding.TEXT_ENCODING_UTF8); + // 绘制字块 + canvas.drawTextBlob(textBlob, VALUE_200, VALUE_300); + // [End arkts_graphics_draw_theme_text] +} + +function drawSingleText(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_single_text] + // 创建字型对象 + const font = new drawing.Font(); + // 设置文字大小 + font.setSize(100); + let startX = 100; + let startY = 100; + let text = ['H', 'e', 'l', 'l', 'o']; + for (let s of text) { + // 单字绘制 + canvas.drawSingleCharacter(s, font, startX, startY); + // 测量单个字符的宽度 + let textWidth = font.measureSingleCharacter(s); + startX += textWidth; + } + // [End arkts_graphics_draw_single_text] +} + +function drawFeatureText(canvas: drawing.Canvas) { + // [Start arkts_graphics_draw_feature_text] + // 创建字型对象 + const font = new drawing.Font(); + // 设置文字大小 + font.setSize(100); + let startX = 100; + let startY = 100; + let text = ['a', '2', '+', 'b', '2']; + // 创建字体特征对象数组 + let fontFeatures: drawing.FontFeature[] = [{name: 'frac', value: 1}]; + for (let s of text) { + // 单字绘制 + canvas.drawSingleCharacterWithFeatures(s, font, startX, startY, fontFeatures); + // 测量单个字符的宽度 + let textWidth = font.measureSingleCharacterWithFeatures(s, fontFeatures); + startX += textWidth; + } + // [End arkts_graphics_draw_feature_text] +} + +// 自定义RenderNode +class MyRenderNode extends RenderNode { + private drawFunctions: ((canvas: drawing.Canvas) => void)[] = []; // 存储绘制函数的数组 + private currentDrawIndex: number = 0; // 当前绘制函数的下标 + + // 添加绘制函数的接口 + addDrawFunction(func: (canvas: drawing.Canvas) => void) { + this.drawFunctions.push(func); + } + + // 设置当前绘制函数的下标 + setDrawIndex(index: number) { + if (index >= 0 && index < this.drawFunctions.length) { + this.currentDrawIndex = index; + this.invalidate(); // 触发重绘 + } + } + + async draw(context: DrawContext) { + const canvas = context.canvas; + const drawFunction = this.drawFunctions[this.currentDrawIndex]; + if (drawFunction) { + drawFunction(canvas); + } + } +} + +// 自定义NodeController +class MyNodeController extends NodeController { + private rootNode: FrameNode | null = null; + private myRenderNode = new MyRenderNode(); + + constructor() { + super(); + // 添加绘制函数 + this.myRenderNode.addDrawFunction(drawBaseText); + this.myRenderNode.addDrawFunction(drawStrokeText); + this.myRenderNode.addDrawFunction(drawChineseStrokeText); + this.myRenderNode.addDrawFunction(drawGradientText); + this.myRenderNode.addDrawFunction(drawThemeText); + this.myRenderNode.addDrawFunction(drawSingleText); + this.myRenderNode.addDrawFunction(drawFeatureText); + } + + makeNode(uiContext: UIContext): FrameNode { + this.rootNode = new FrameNode(uiContext); + if (this.rootNode === null) { + return this.rootNode; + } + + const renderNode = this.rootNode.getRenderNode(); + if (renderNode !== null) { + this.myRenderNode.backgroundColor = 0xffffffff; // 白色背景 + this.myRenderNode.frame = { x: 0, y: 0, width: 4800, height: 4800 }; + this.myRenderNode.pivot = { x: 0.2, y: 0.8 }; + this.myRenderNode.scale = { x: 1, y: 1 }; + renderNode.appendChild(this.myRenderNode); + renderNode.clipToFrame = true; + } + return this.rootNode; + } + + // 暴露设置绘制函数下标的方法 + setDrawIndex(index: number) { + this.myRenderNode.setDrawIndex(index); + } +} + +@Entry +@Component +struct TextBlobDrawing { + private nodeController: MyNodeController = new MyNodeController(); + + build() { + Row() { + Column() { + // 将自定义NodeController进行显示 + NodeContainer(this.nodeController) + .width('100%') + .height('70%'); + Row() { + Button($r('app.string.BaseText')) + .onClick(() => { + this.nodeController.setDrawIndex(0); // 点击绘制基本文字 + }); + Button($r('app.string.StrokeText')) + .onClick(() => { + this.nodeController.setDrawIndex(1); // 点击绘制描边文字 + }); + Button($r('app.string.ChineseStrokeText')) + .onClick(() => { + this.nodeController.setDrawIndex(2); // 点击绘制中文描边文字 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + + Row() { + Button($r('app.string.GradientText')) + .onClick(() => { + this.nodeController.setDrawIndex(3); // 点击绘制渐变文字 + }); + Button($r('app.string.ThemeText')) + .onClick(() => { + this.nodeController.setDrawIndex(4); // 点击绘制主题字体 + }); + Button($r('app.string.SingleText')) + .onClick(() => { + this.nodeController.setDrawIndex(5); // 点击绘制单字 + }); + Button($r('app.string.FeatureText')) + .onClick(() => { + this.nodeController.setDrawIndex(6); // 点击绘制字体特征 + }); + } + .justifyContent(FlexAlign.SpaceEvenly) + .width('100%') + .height('8%') + } + } + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/entryability/EntryAbility.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 000000000..edc2839f2 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 000000000..b1e212947 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/pages/Index.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/pages/Index.ets new file mode 100644 index 000000000..d0c713667 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import router from '@ohos.router'; +import { AdaptationUtil } from '../utils/AdaptationUtil'; + +// 示例代码默认设备为真机,所以在开发板上某些绘制结果显示不全 +// 通过设备宽度等比例缩放参数,以此适配开发板显示 +let adaptationUtil = new AdaptationUtil(); +export const VALUE_100 = adaptationUtil.getWidth(100); +export const VALUE_200 = adaptationUtil.getWidth(200); +export const VALUE_300 = adaptationUtil.getWidth(300); +export const VALUE_400 = adaptationUtil.getWidth(400); +export const VALUE_500 = adaptationUtil.getWidth(500); +export const VALUE_600 = adaptationUtil.getWidth(600); +export const VALUE_630 = adaptationUtil.getWidth(630); +export const VALUE_700 = adaptationUtil.getWidth(700); +export const VALUE_800 = adaptationUtil.getWidth(800); +export const VALUE_900 = adaptationUtil.getWidth(900); +export const VALUE_1000 = adaptationUtil.getWidth(1000); +export const VALUE_1800 = adaptationUtil.getWidth(1800); + +export const STROKE_SAMPLE = "你好"; + +interface Item { + text: string; +} + +const operationUrls: string[] = [ + 'drawing/pages/CanvasGetResult', + 'drawing/pages/CanvasOperationState', + 'drawing/pages/BasicEffect', + 'drawing/pages/ComplexEffect', + 'drawing/pages/ShapeDrawing', + 'drawing/pages/PixelMapDrawing', + 'drawing/pages/TextBlockDrawing' +]; + +@Entry +@Component +struct Index { + ResourceToString(resource: Resource): string { + return getContext(this).resourceManager.getStringSync(resource); + } + + @State listItem: Item[] = [ + { text: this.ResourceToString($r('app.string.CanvasGetResult')) }, + { text: this.ResourceToString($r('app.string.CanvasOperationState')) }, + { text: this.ResourceToString($r("app.string.BasicEffect")) }, + { text: this.ResourceToString($r('app.string.ComplexEffect')) }, + { text: this.ResourceToString($r('app.string.Shape_Drawing')) }, + { text: this.ResourceToString($r("app.string.PixelMap_Drawing")) }, + { text: this.ResourceToString($r("app.string.TextBlock_Drawing")) } + ] + + build() { + Column() { + List() { + ForEach(this.listItem, (item: Item, index) => { + ListItem() { + Row() { + Blank().width('4%') + Text(item.text) + .fontSize(16) + .fontColor('black') + .width('90%') + Image($r('app.media.right')) + .height(12) + .width(12) + } + .onClick(() => { + router.pushUrl({ + url: operationUrls[index] + }); + }) + .border({ radius: 20 }) + .width('90%') + .height('8%') + .backgroundColor(Color.White) + .margin({ top: 12, left: 15, right: 8 }) + } + }) + } + .height('90%') + .width('100%') + } + .width('100%') + .height('100%') + .backgroundColor('#F1F3F5') + } +} diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/utils/AdaptationUtil.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/utils/AdaptationUtil.ets new file mode 100644 index 000000000..2495dcfbb --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/ets/utils/AdaptationUtil.ets @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { display } from '@kit.ArkUI'; + +export class AdaptationUtil { + private screenWidth = 0; + private screenHeight = 0; + private static readonly STANDARD_WIDTH = 1260; + private static readonly STANDARD_HEIGHT = 2720; + + constructor() { + let screenWidth = display.getDefaultDisplaySync().width; + let screenHeight = display.getDefaultDisplaySync().height; + this.screenWidth = Math.min(screenWidth, screenHeight); + this.screenHeight = Math.max(screenWidth, screenHeight); + console.info('screenWidth ', this.screenWidth.toString(), 'screenHeight ', this.screenHeight.toString()); + } + + public getWidth(width: number): number { + let realWidth: number = Math.floor(width * this.screenWidth / AdaptationUtil.STANDARD_WIDTH); + return realWidth; + } + + public getHeight(height: number): number { + let realHeight: number = Math.floor(height * this.screenWidth / AdaptationUtil.STANDARD_HEIGHT); + return realHeight; + } +} + diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/module.json5 b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/module.json5 new file mode 100644 index 000000000..4144486d1 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/module.json5 @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "extensionAbilities": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/element/color.json b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/element/color.json new file mode 100644 index 000000000..3c712962d --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/element/string.json b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/element/string.json new file mode 100644 index 000000000..a3ef17a7e --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/element/string.json @@ -0,0 +1,180 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ArkTSGraphicsDraw" + }, + { + "name": "CanvasGetResult", + "value": "画布的获取与绘制结果的显示" + }, + { + "name": "CanvasOperationState", + "value": "画布操作及状态处理" + }, + { + "name": "BasicEffect", + "value": "基础绘制效果" + }, + { + "name": "ComplexEffect", + "value": "复杂绘制效果" + }, + { + "name": "Shape_Drawing", + "value": "几何图形绘制" + }, + { + "name": "PixelMap_Drawing", + "value": "图片绘制" + }, + { + "name": "TextBlock_Drawing", + "value": "字块绘制" + }, + { + "name": "DirectCanvas", + "value": "获取直接画布绘图结果" + }, + { + "name": "OffScreenCanvas", + "value": "获取离屏画布绘图结果" + }, + { + "name": "ClipOperation", + "value": "裁剪操作" + }, + { + "name": "TranslationOperation", + "value": "平移操作" + }, + { + "name": "RotationOperation", + "value": "旋转操作" + }, + { + "name": "ScaleOperation", + "value": "缩放操作" + }, + { + "name": "StateOperation", + "value": "画布状态操作" + }, + { + "name": "Filling", + "value": "填充效果" + }, + { + "name": "Stroke", + "value": "描边效果" + }, + { + "name": "RenderNode", + "value": "混合模式" + }, + { + "name": "PathEffect", + "value": "路径效果" + }, + { + "name": "LinearGradient", + "value": "线性渐变" + }, + { + "name": "PathGradient", + "value": "径向渐变" + }, + { + "name": "SectorGradient", + "value": "扇形渐变" + }, + { + "name": "ColorFilter", + "value": "颜色滤波器" + }, + { + "name": "ImageFilter", + "value": "图像滤波器" + }, + { + "name": "MaskFilter", + "value": "蒙版滤波器" + }, + { + "name": "MixedMode", + "value": "混合模式" + }, + { + "name": "Point", + "value": "点" + }, + { + "name": "Arc", + "value": "圆弧" + }, + { + "name": "Circle", + "value": "圆" + }, + { + "name": "Path", + "value": "路径" + }, + { + "name": "Region", + "value": "区域" + }, + { + "name": "Rect", + "value": "矩形" + }, + { + "name": "RoundRect", + "value": "圆角矩形" + }, + { + "name": "PixelMap", + "value": "绘制图片" + }, + { + "name": "EditMiddlePixel", + "value": "编辑中间像素" + }, + { + "name": "BaseText", + "value": "基本文字" + }, + { + "name": "StrokeText", + "value": "文字描边" + }, + { + "name": "GradientText", + "value": "文字渐变" + }, + { + "name": "ThemeText", + "value": "主题文字" + }, + { + "name": "SingleText", + "value": "单字" + }, + { + "name": "FeatureText", + "value": "特征字体" + }, + { + "name": "ChineseStrokeText", + "value": "中文文字描边" + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/media/background.png b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 zcmYIuc|6qL_rIk#Su&MMQlYU)cz{|$Qc0x~A^BEf( z`{n=HaSk>%wsfNM*uUkN^8dI{qxxW z*@b_`#>VlLWSG9 z0>QdPQ-&i_RCVdp2s$-u%S362^SHV0`EO6;@n(xK));G>#qwhPWrDXGk@OBMV}H!J za!48&`xhWJKj{_+f3ir<>Jg6Ax<&Xgn;)U7UJyAw{(u?zlf{oLsJTS-_o1?+lSg-j z8fcZj1*Ad(!X>WuuxM!H5t@V3*8vLL6`QnC!q!BwQjI{yk*;~@|3;B)`p$WYcDmnZ zt`R zr=oS6o-D$WZsYKh1PiOdhhX&YWGOzpc<6ITKzr^zi-#>z){t;yz3tu_a!>)(tTU9d zd}COuy~Tb}UIRNX@aVGJqEKUa)1#E-u}pl!sY)z4cu+Hu9==`6=0Ob#x-%q}t@jBp zmoiZDcfF1WL{PB0ZO**8yZ+%;LF6K*JDUoHrJkl0Wzak+Y%E( znUmuA^p@Jv6{%Y;MsiZ4O?#ID2b2ssEq6_KGL z8T%zdA3YhMnkBu19bNsa_$$_1^16jadx`0ZzPx`M%T>qZpYyNYOeDdmqLTNWpR5T% zOlRrW_xNCD+*3_WSxvt4P-@qQ9g_$aedDk-hcV~t>Oxw;UaAk1V?9m5<2k4%VrM$- z?{KH{)m_U~yJcBbX+vqVfq&4)Vf+FvAHd|s{V34=f#uJM!Tp?b32THmfzNn1unwY& zPNtaE{ZZ=OkZFh*xW2FT&fDF?64Q%l>dwdZ#Bg;^v;dAbU*QLEQG@_|ucNXFyx~H( z#h?kJKeI3jD^U~`e`*^zcm?PlIWj|tL_a8NC?HVl*gX%;5PW5Y%ZZ*G=jPn5#o+Sh zhnE>D@Wb!f*O>cZ0}ZT=HlEdoWVWk}5H1S;$vxe#Rv~;l5rJ=w--wPl621jCW}B|gxECKzT9 z3FKlD{=OfN5$J3?Ag0g4F5t8_D(RvO8W!*~?#q{Dhx(Sj=)^9ZlE|LyI?p1NXMWr| zGGbzFN^3)5?P^vfnD7XZo*8yf&O&>7XULUUvhJT@rHcF>PmjodH~u4RSmX4TH?v`IKg2cy7 z(T@e4&pPRHRczikEvwvO?jbblSVp z2qpyT+LHUFhHwcunP(^h)G#uA95vF`Gd&1k%F@wuCk3DnjNjw;b}*;dY{F5{7tNsg zLf4y|)RTV`PjQ^!NoWB3YA@S@Cw zUAr?mUcn7g)n!3J`D7*H`y{%TuT$wNY;))rP(y@kdFdPH#h|rjcW2#oRybxTchXlQ zwMW{bVcqRRc_2r^tI)Zav_+qLwdd|Bw=*pM!|pflbT%K&Eof^{6+|k{2_;HcrWd3? z#z;>@Y3dp#B^R5c9RhH8lT5MRr*;>xd<%C3sV2Y}>{On@a*oump`g#H<6V&DKeZ-?Zic$S$>ulEiZvJG8kHMeSzVE(R|E-<}cEG^n2E*Cp z-25-DQv_Mf+&WhT3r?23Phid$q`Z3HE($RgC{EJA0Yc1SP6(a(oZ4RU2L1~H6k0Q< zHY1Mj{)b(ll3Wr=HakbiEk13zYKN&f#9*}tMZiQ7h@Us+N(Jk`aWQHf)r!ObZAT>_STJuzjuO{qHMlTjN9^hPZ8sZBMl zl&MX}xk{d5VUEInRK9r^Tnx#HE2;hFoa7?NDufAxZV6Mj9B^NaAt4;oStAtWfVg8< zjQAfLPj#u>Xp*sALAi;M(f1>la|_-k(E*-1Sa_Vdt$KsCNAwAbm8CmvpDbwL$`Cx8 zkBC0&3#@q@7E3LVtGQcrGS=s-uh6FHuC)WTtU_@t5c_T~`Wv+F0Jd$a9s(?ucd&l{ zWThjQ*u4YqU6Wq{+^0sC%S;vXx~qO|+s%Am1m-N}zkd84>GT;5u}a1*p9&!g%3wk2 zl=rj+H9g>!z4_zdU1iItL}Zox?lwK^ykQ+_#Ym~p>s8CgcLQYV4wezL^K-_HzM$r! z1m$U&G13HqDckgHschNcoe73o=)$P$j46Y)SnaZK(U|F7d#{AGb%>@b+jX#5*Rf5x zq}@ejPTyyn&&@n|dDGl-o-=XF%6dndW+}@7JDd?6b}Mt-SX_GV^3{!3Yz5a~X@$Fw zyDIkaWq*rtn{8knumG6=yF(6lzQnq)&M@%8RzdC%{%-0Ey{v&0pp-aIPP$bTrF|=~!MvLftx2pd=0-86i#@A;;(b^r-TzBJn~W4d42|-V*)} zt}h95!TwDQ%xWD9TFS{BwGO@d9P>kia=+LQ@r>0>5VvEV8(&tEuw%+YP*Qm6KzZs9 z#qL6SPwl9DtPZ{0`)Vph`^ryNV|=I7r2Vf@LrX3<=$f6zv1^z*!<6j{f$|6Jw=%s2 zb)|d{?()1m_Xoab$B5r9#&taTI^E@0yTQ$UB1_f0nc<oQhFOi;b@!o=y6w&Tsrw|K5XXEJEA>@Eb?8hi( zlT-*bXZd6g*C+W9V6B5iF$2f(_-ek(ko^JW%$@}`#GJVV0S8A~FwzM(JdY)c1B&ls(qJ=bvy&S10cqD8@1Clbooq|3kmbD_she z@O#tu^ibgYfM#HD%WIF%%uf7+)sc&Dejs@WRQE+Q1jXlN2z>9dB;X9e>Y3a-&-A;T z>||D+o$j^$E>F`4y02DTELRMYH*biv(5+ed(cQq&82Gu z2~UNnOcNc&MwT3lD@S}nPJMsvOT%0L{`dN}DU&^Z#6?2^aE!5ulUV_Zct}2~K6R!_ z4ReuaX$@AP?M!XMpi&ZJwsY2up5F-xe0{ym`9#@pr%63v->d&@UoFthcC1`k$L=ze zYX1{xl49Q=z953h>NzyMc3UuH96t7)-k|lRw-P=T%Q`;dC7@r`uCOq8Eqi7gKC)~7 zb(*Q>H|T2(e>5DVf9nswM~C%V2G2 z#B|VOitZm{FlV>EydvsFF|Ue~ium0%0KOaFiMOLk(X}jHq@dI@*AM2G6XzCU zSpFR?#U4MPz~VZR>RA@a!CZu45#f<)^f#kJ+ULtRLJKzSj=cf+NxQ}Kw)Yme6wJz; zu3W=Jz<}rEm$g7sNy>yr-Z|OiI>qQ4m37~);`_~Xgr~N4wOAssk(HTh5er1XtFm+! zb`5FT&FoKA{ADaUP!Y#o^sGPb?mT2wBY9ZfQ}ujLk`C_dyTvT&)34sj!RXJcZ%lCzF?kE~i-xCSGh{ zy%iUR0+S_JP(#%W9!Npk=RL(8tFB7(up1ms-Q#8 z$-{dva97!EQB<5#@0KgW&2S|ddKN*<(?}37-=O@1bF668sG)3(D61=Ech&sJ;j|An zqu1a;`}bcMj;#tF3l~&Ue9ES7GRw~kIPKK&q&^No_3M#yjp?ygI;To&wcXbe%ju*z zpMI!gbi8@{AJVkgXR+py{dMSfko}H`^q^elZQ-5<2bG-K8tYq8Q@*4t)`Blvz!#v> zE;3kk_e^|Kew4?}eU;3n)q48yWgAm)d+F(;W(>jPB_glQLiH|IE=EDVFI*j_FBebS0vXyh5@x9LS?RNi7vXf?RckfXjvy^Pifki$9G zzwp&k7S+aNOI8%DUON~#xxv+a5rJDE+^6;@RcjnwKZ|%#%Ukq~@&vL#Pts;`f?jwYL)Y zDOROB^T8hlFfA@(=$bFYKWy{F^5$#{h*A1FG5GZZ1?>Y+!}UULap(oEekfHZCJkpC zppRS@+Uvrs>_Df!YT#HWpuaEwRq)V49)TgZ7Jf{A6@tpv&>tG)c9F&eZWo)(tDPDB z4Fkl6@ov*S4!gboeokhZ>My7@q%!Z93-zy>Y(_9axnH2W2Ie&#X2Z->o1A6ZoV(OgY z@PpdL`E%U}QN-vzdLCdkVX)Vp-z|CGg)^e06LvMfbj%1)ZdXNB>r>{Jk&ApwTkkLr z-2C5e31{3c{*xsm?)EItQ%pSW(%723B}AHgke#M{7KJW6TT*>9^+`FIe4;VHRwSF$ z9rBta7_>vwCuV;vFY=|NZ2KlX$A`EUk*phH=Pd~I8Kkr|v!j3sBAD^fPD!FoPpnHf zqP&jc&^s{jm0M&oBNXjUol2${7|G^u7UtOd2kxA0b?japS#xlwo_TaY+jh-`+$sfO zFLgfqb~kaemX{ErUn7}?_tb>g?G@UyT99HoY^;BG(5|gh>F3J!9J* zvrz6TP+;XdE$<41%Vony^Y}i*aCz@+4v^38p)5?Nhw`m%Cbg5Lpz%VOxaBnlA9P;N z9D=#{(>`$N_!?&CKf9eJGzIc>dhWes8XtpX`{gOhP;HMklZ8~@Yu~YT1bZZ{VwrAffDNiZ6Mh5vEzpq z=5A;0ff@>1MG@vbwRU!?7ZFD-SYng>JN(=>uwrkrl@4u6M^n6jl1shsk;DM`t#|F? z(H9W(@&~b(mmUR)30H=vAZdIrX%9iR7rMruZ_I4$Eq7YnBI4Z8T zj5;RTUu8?(ZsW>30%Hk#$^zfAtgZ&y!|p@5%e_4oe7)3{Y6c^x>zv=o_XPiF*wI1y zNe5L3p=L;8_D7-+5I+LfNgDYrOIUD_Iu_VJQD^=4v=Gd z_u%h$8{Lobyu6%VkeZI%T_vssgc#J4yD+&6pVkdLYl@3@NdcQbwl!J%4{RC80oF1z z`ksIXyrZT=Apq3kOR#m795+y}-8NizKBNESZCmBS#jqG`n4kCydp-4DZ^BF-zWD2# z1@F?p*^9m)EPrkd^E&cimk<1mN+iwSCVTHpqz^#`_Dj;-5xURqxK*!kp5asE##*=< zc{bFC-`m;q4VL3=| zKN6@)%XIu=yS*-K-9Bw`jN+-lWBttd77x>|g)~$UgPB_qH0h&bm}j3#sdLfV&xcR^ zQFk=d3;U8~YLqm@^61C zmaLbHw=dJ0oLP?>eyJ&=wgtZm!2mS9V!i~62x+n`%jyesf0bKruxRDH-)c2uF;&qT z4Z0drBbHg-G#ueH1vVaEJFTw$U))8mlUjFz?!PDqNpcIqZ%B6$Ju$CzrK@_na@?na5LpJODS}`)`8j7i#>C z0RNEb>nnQ8v$qXrgh)-(=VVRFwj4 zZKH}5T4rlZ$PiI2z3_*{`av5A0jPJY!Y*RQ?XbKPZmNdwp6ufAH4m~1%r{gYeOJBR zai+gl7I{Z35P0Q7EoGmkkLGHe5rR^{bdxWyMiC1~&kI@I-bYJrdGv{=O7!p&kKxN3 ztOoyzWj_asX!zA>`fa~&>#$n@3{c@VVcl3(1m5=dCI-~1uR+4s;@87ozKCU|Z(EhE z7~Csbr}e|&-zPK~*W}WcKqB+rv-rNRzvqfY299AvP zA5u^Rs->xN6b@MzP_f(M+}|~RxUHs#zO%D772V@B$F;5<%Jx|0#Oh_?#%yrHfV>}I z!Lfe59_VCjJ!pEQOWyUr;CdyL z-RzERMQjU_j%}N!Av?++44uVMc#r_KCTZxxSZL>4`xbm)#)*?4I#nFDOZLv10s^{6 zAyo6zfA)w8n^jk|KBb4J;|Gbx9)grFflY-Nyl_v8_@}gizDNn(Y2l6TqM&aN(+9Qg zTBo#J4N$h%f!;K&2NqBlT~J6aqHGy6HI`Xn*)UV$w2>iLk~P=l)VTdah9Ab`z%}dg zxIvG$xPG=H0NRw|6_-~Bzh+BPv9&C;z)58?`7t~$HupdHcF!F5dirrGrn3d}wAHr! z^@&!aoW@3sENjl#i@LzRYOZ4b#v|Jk_Mo$-VYlgbE3LQVKniS1mH)uO`90X{bc~{1 z*%Wm4$E_2-W__`4`mDu;Ld(wv8e147=mMu!AKSC=mw*4n^8S>~fm9mJgf4~8t(bb> z^_3WSK>aAZ6lK3OZ#_7g@)?z1#pZ zoR2>rm%_enbG!+Y34#Jmal)V9@-s8li+_Le^~z8cxHeF5vR%p~{93TJv%YmeTB|@^ zc=}q4Gofbju_Z#%Iv9|44|pawNvh^mFGBA_KZ5C^rx-l~Ytqf4;%SxezE8%O)aJh& z>2it7b`epB=P&=s^y`mJMjMq&9Jvpdhn}6sFHk)q%d zE_RV6%-}?H)w7yAW9TA)&7XbMyu=N}tRA-JTl2iG6u8;@?;!BW;ykyof{i+alo zJu1v~ITow6y^)5crWdi)&;yNs0d)3*vN+aSszJ%`1`(%9X-Hi}3gH#iRg@{Svm?cP zM}T*)U{A8FTQ7b@oc$7vr_EeTIj6N%Cr}VI5VcfZk+@1UFc>zpJkm3S%cb<~=~`BV ztbyjzOPJuDkTJJ!hL^nLk}*=2EXd?->%+3NWrq&5a$%1G{r2~cLQT2W>8!pd$9G;K ziQIDUErsVk$XQPRm)pDFYVuLFlx&eiFlnoixT|jvAoB)ryM_}euaYFXrdKLqi|4AL zG`rnvWi4Qa>Wvo=;Y+t@ecMjl{#37K;?VkYdoSbT(2m}8!k~RT{yv0l8cPp{jtiXr z$7KAJAvM_g4ak}0Yo*q!sO%PN_CK)Pv>lC7xoB~vG1hs?Wv>^kpOBU0WV@$|oL!cE z1FV3%^4Pjr5Fqc)|Sv+upxx8BCM z9*cYQYi3jY(^pUL8`I|3rHf+5>sq98e!hkPsfNMQ1@y7Tnf4{F2p zx9AO&@zYO;WpCQUf4G@!d<{t43@&RHh2Ukg^D-8_;De`dc{hz?yPS_7BzU!x^P-tj zBWt_uk{g94M1uo_&0l?m1qh!Q>=dKy5cx zRa7mv(}`xYKJOm)h3s8goQ*XK1OT<#&Ozf35uTB^VD8m)Z6Bnlal5r-bkso}J^TcM zo)ZSc#2@`h0Si}lrnCFt67JFa*e&}2avKCL|IIk<$R2*5sILkv4P( zesTX_tP#NqXN#>Q{4oe!N=G{SZ_I#~%^kq5ilGc=Q63_5uRt!D^j$k=&$`Ha&bGlAjZ2&hWa=M};Cw|5onME2e;8le z)-hK+mgNbGw-4puLN6g_q5p6T?0XM^dMo810rSBSw7Rrl(jt2JNVBwhB0o3``lZ1y zBr`Dy8LdVilxv`X5b0N8#{#(y<2vQrLj;qv`XA#RZ+@Q~*aYa^UY~;#F>6BL>75+E zeH2(L#HhLeI=Mz1#%^96zY$Se;@N)biYOvM6H1p6-4LcvA=&GP()#?u=_WXgAoZl* z+bR{6BA52?12Rex)v?(LMRsKvf9{KzP<^4&NISV{2!a;wEhr&E)EloHqSR9%ezb)? zl9X;qQSTg@es%UevGs9-KQk6RqJ;Ui(v@S0=JpkXQVYgXlRKQcfFLT2A%*#c?7(b} zjki==Q^Y#Qf}ZVpFtF6<4SbGKkkU>I6wY*Ps*EAzemS5Z0r!-oD>~r!<<+c~fHK+{ z`u4nWcW&4!()0%2>r>@zr$F6$;5*IAuq5bc>cn-IEZ+B|hkO&NPeBi&47YiU-<$w0 zq-j9aGH~K;Y%0{D&e90RZ(J_@o*`(e0TgqWM zz>V1_2|7MMg_6zbeK`A2oW6>`dUuDIll*?4hKaK{^>2t!B*N9o7_!iC51?A=hss#S zTOD48mGM}}JkMLeB>f0zNw|zPj8Efyx1Qh?QyT7Bp*PsC1%+$kgboSqDR=rTEs%8X z-t2|68n3XC`A-sBYO9tXuQqE7{}pE3mRASQTvScN7(%JH0{M|k4t%rE7xh`qUf4A- zgEE3f#zcuMyMYyiu;w=#PFC-_W0rb;u#{l@E}K0uMy~Ec1MBz-KglT}I_AG%m9nb!XAkpoW-`_85Umy)5g0j(3(>`;o1;w;CKp zLKdGc@@LrE*Y6B#H>jMeTcD6nZx;FZw zZ?8nd;T;sv#~t>9Stu`V2=$pLBHrDq3VNw9{KZU-50LlNLK@?o*hLF?1Kjl3op`;u z=nFLXc(CuUKp%gcxwwBm08`iDki>51cyobB9Eypc5@0Uv%$x+m$P}vtzJ@yXv2Y(6 z%G|Dfw#*GyPhoZ)9Obc;u$h*k0~W zv)EW8ChYvHNP~Ws5(MQk4JSGnG!l*4I-odrw$8E;u9uTN)1sDTSK-9%H|jqRi1XpO z_RLbdR5?V7FZiM9a@_RLzrIa?o8u(&ct}&dJFEmRO#py=1J(LW)$S@B$xLi6T)SOw|;fa7Myzv z?MOZ*b$o!rCg?J9&v6SsP#m&goHWvlC%0`IUKT~X&=s1cU$O`0Ea`_f|aU@(<=bXW{`6+7W#cu@H9t zagx-Usc&&vez&!Mjqpdk+Ol(}Uo_B;A&JhUaOe-iG9|*Z<)SYRZ;!m{$5X=V;9Cl+ zs(#H}WR`823f+9`wmRKF;(;wyt*?b3@Y`H^;&@1GipUF_{Gb_RzIV!3$qMq++{iyr8Th+msVi*eA69cY1K|TmaXNA-rCXT%k z%$21aDiQY_-+BI`52BI$rv}FI)tg7-CaaD7_O`l9ngVYH9#Xu44ly2flHy-xuzEyCWC^6c-^K*QrZW zNG1PL`B#xfh_CD57q**Q+=Ty9EEolHUwT`)Z`SWJPvsxa-f8_iHO;AQOj^^?v$Pd6 zy~3pjahT&?UwB@2zW1)s8+UfK$SFAL~tHHx3whuvPyW4mh3w z`_Q5~nHOsoDT0sx@+N~J<-Y&TvqV4MCkgXgo^ntecjdoSopR%@?wkEfAuHDOIVHQe z|K0}d$IAWT3jC{=QJCD$*L3=%k#f)T)tT7R=nTHqn)i5$Q)sm)53ZV1w&{swK_X#n zpD3;2Eb$r)$CDg__L8tv=0-5U5hB))B~SI2(6`QM95phAkktAVs0hU305vOGT{|^t zH`?>)3!24y5TBnjRfAJG|J9jjj_JYwB?gujfD3QwPf@~K(A2Z4KynC|m! zMt!}`yx4=~u?@-#ab5-T?In;dGAUlGajcN(yFF%ypy(av6(B6-=d(A}}k7wcgUJ%c_TA&p~<@ZA~EU-mvx5S_ykM?O8{R|mH|RE75BR5QQ#CTpy{;f{(N zFpFjUOJ}EEwov(%eX6wm&~H5dD|PO&*VQvG&6Br6eo1I>i7L)sk`T?{8}`lQfCB2R z@nDF(51Rl?^;uv9K%Wz-qpmyIoZjoO+tGhY)P>lU7U1Rpv;b{^)mu_I7=1e%POI7M zneWYe`!E(sG!D4Pm@9XD2!jhItDw15w=Vl)ioN}tjFK(3~fxy=!h!`6@!cQuCP6#aH;{{dyV2@O1#ZX{Zl4pLmD z7*{Ip)`V*gV-QVaE+>|4R`><5Z1*;n%pfkb3AiZ1s39)5f5khONJ{XZ5dEj{AwE^i zj6G1{WVlyMNlC3!_Nyk^Z0DjKo$ha)xbx}7UO*rnNj8he_fyO?v!so#$d4^uhxAXf zZNG(a)^5wM7^{-xB|`JITdre*!q^0$>^GMLKm@oauH?5G^;l>0Hp)xxzomAmYTE02 z+c%CPd*0$Be%v~(u%mMywt>EgIlKPOZH{Q%Y5c6=;F0usNLUPph9Xez1H1>s1YOPG zz|s4D9}W5qUuupaM_2#&;|@Jl=mK~Bc0i~OYb643=Gzqz>i%czm6IJ}e-nj~`8ZFe zGWf#c?5=VP0hlqMCIlRJj0p>6ob8O5e(*AYuP~QI>C$d^Yi`)_a|r1LwH(~NZ9P?Y ze?ts^N2upq=Br??YX8%HZ%xopU$9Z$(sjX zPFNIynnhW{IRi^L#G9#+Ew!gHJ%T1dibisJk2~6dM4r$&WR1@Yh3+PZbrp7G519Z>UKXw(mZMT+M-ozzkggshV_x`b zthj%~?f*E&m2-P{17aTUsk&fyuduoa3w}G`Ii-fByRE*XlORaY&Ax;2q^Y}9DeUiq zyMK?>G}eX;GkTjbS%GZr z5T&~;Y#yW|>Ep#W|B^P_r=X1$4uFNPGyw?zjr2lT?F6>ZQaaY;=%~?w4R^35Z=yWu z?(pW}`Hbg{7^L5u3abb48R>Wz-8&e~ld& zG34mkg*Nsz8LkANRe$e1~y0OAYcFkLVXfFw#0X3 z=EB)RkCjS-zhk?;_Eww$ZWCeYf2AIt@_v0+O&5H%+nUcKQQZ*-D#Mj9~nh zx&c!=`cApy)!}O~mTV6{@dbum`*7{`e8wKXQ$qf(L_&%pEl%&9Hz4Ua`%w=5(|{Fe zG=KtAxRHvVR%isJiC+qS)RMDX`xiqORyFg!x&NkABWs5}rYfi3W6r|&5P*I>{#$0n zSspPdl-FAPCWDVqU+`hp5SJ)}U4;QxQ*A|gM$`7-D_HnBBw1Px+%y8Fr*ZBkK&P(5 zLO)g}sM)3#vqJr|zOLiUYMzC)Ip0^+BMHE(YMU_d9|WolPeKCgmx*JYTE6;S>Wa~2 z4x7~9yMFQiL85QHvJtCUi;sWX->6#j?bP;4-B$$B=t*-7v~dwa7d_l5=?cxUgm6Cd zaZr_|B^X5;{k6{%BEZY5G{tgIXaw~PMvhi$_PDnHbyno3v;_gj5-=Qm12)lz+O@kglm5{q;M_RZxMCq-* znMrLfk)rYkS^lo@-6`Sd+^FUeRw9NYH^+}naYE(H+Zh38KI`SA9vUIYM`w7n(({Fc z<0<5oW06nE*}@UB$5AV7a^dI2srSJRcWrClmn7EQdBmJ6?_NrBl@wo_%pe-;K3ph= zN1j@y%^Bw-|7I#-OsQL<1zRV2i1N8h%Jz zJwR0GxN$z5cL7T2`h@=Nn-d!(GsG9!?+6zh=pQ$E{l5S3TiBHQ1&Bvy(*8{} z3j>EOJw+p*2|#VfcRh@u)N+@NMx-@QrQhRg>Tr5cY}aHl3CA*moGLkK0}rdRVR=E^ z{#;gyR7l*RccCrEo*H}%3X|@5YPQ+FM>u|=k#sp-M{J+EGRGl7LH4Z8UIUZqJ%O1S$-a-TXZC__K^ zV}HQ($I)a#fHDGwtEVN4+}*Rszq5|ewZGZEuA5Iw2OpA6%g^thr!`g2lSe?v{V!Zs zZR|Oezz_e)(WIs7nejBn3Q;m~{el(T15QaA3slu+pDiHa->pWfN1C6rVtf%}cuYmO zgKLKj2iNqdxC5nzUkN5bWkY7QyW{~Jm`(yqq=456x~COUo&to>DhmwrE0T1u8eLBX zmGKaO;crc6pm6&VjM@?bZCAXTbba*pRUvkbglVZYwEkF8YfO`T(Y8Hj5McaI z|C{H>yx3qKlRMuy-lc?Sc1!2)CVr8jr{HCfqbxH-_?m>w0h)fl`U3oh{a{=<4u=GG zzB1dSG{rJNtgG}nPU<2q1UPrW{mUkc8)_`L7OAnol7dZB_a(SX@-|yK8Wwm(0F1NEm_aN1wVsURw>% zPcJ-K`1h9E5@B%#7Tn`q0}2)m8v1N;72R}2#~JeoV=z!u6nMx5Hh%7WcQf@>B}s}j zpX2a$CtQcsC3W?=6QyG8m#bS^7MwKolNJR0blaxwZnvS?S;Zd`$Td4sdlY4B=DpVj z;GB--4WcwwL>bZgwia+-FoH)nTd?9m$)`kWfURntsPevI9OkDUq}At_Fhr2*m>J<7 z|K^#22*1UDq{{(|XIx*ulqtAAdQ3OrRygED^IBKe*@i}bZ9_@AZve0qu;T?J2LZ}j zw%cP}y=TD%H^Z>GUW2*063o&E!US9==;FnvZpXFNHRbelmmD_~T)}7{w z&e;xBEsak%$=pypJ3t9=dtnbS!6w40@X`hEdjEiR%*$gfB`8X5t54B?{Y@k+{O-C( zyWn|kD&H^1e6{Z}+mjH!-{_d1n-62-&sj0eAIe`j`?O4m+Khn*F7;(ko`grc}wJs-Gcu{X=-q9>JtlE}duQ+wL-kpryH@ zy?9QcUQwlU%a{$3@vO{6uEg-;vQ6$i3UQK;nO(8qR*T1<;wvvr-5aev6Kzq@WY?yI z8CkJ-_v2o5#Cy<>1tkp7W+umyd18ce*OX=Fs(i}ooB^lb_(Z+B(#0c+peWSQ7vamb z`z_V8WZ6ITb0VsHVCX3uI!$aMYq+2H_VJv|H+xOae}8%g0Ho5T!|3N(fPIQlqqpY} zehINqo%!U~bwZHmWWWQHbG6yOu;gWGMqLHRHz7_bwPG8clq4AvuJY+yO|fZb!!O?8 zu}-gsTJ7>_YGOwb9ZP{7Y~E_-54t0uZ3t;;kkys%#n||9@a5P2V=teS?-R*n9l4LU zX`b4bjK#bVZd&U8y01tpmu%od$DMxAMMv9l&MoL=#mqz@UrVGR_l0_DR1(?*60e1Gde-2*c+IsqkdsUBQplCu zbAh}kVEU~E+wWc#ljwacB1;-}=6;qO#+T9U6+R*7gTqwax52TW8BT?9baXZbe&3!{KI_6)y4?e%W{LkWI2jCl?{Trz8L**uH#O^Q>E0F; zvZVDQPmj+y3P_#pP5&8F;btP7L{R3-N@^b&z}P6C*IselB-bHG;@9&O))tmx7<0R@ zq~8V%kqZ)eZcoE~O~sQ8B8+i&1Ue*r4H|9dY8S&zqWooS;5LT2)V0emG9SEr9t7AM z08Kh_ER&MkZz||l>!~yU@mi`?QQ4AitwkZp6F1DCU$U*G8x922-bf6%3pYrD#i2*< zwpz(G$kV;(&?c|bI?kVkWtK(xu`&B#;UTMoJn+{-FXYMJH&~sfC%3D^A2%%pYB~Fx zYFb@KR!L)a;xpqnrzd^@O_;-5c!|es9)R%NkQ;Y{;h&+Ck8^jTn&jZ}P=M)n>!7A9 zbI=`ms%#Cn4 zcD|SP<@REH*!8~greM*drUAx|97aK~i?nk84xe+fW zZ{VZUt^WcR{^_IyCA?BgZ6gdxVu5?G1|-aEz1&EUsaWP+cJ~=7?fk17Km5W&X3{&= zr6*juZl+Xa>izM!qk7^<2X1*30KepqIdjyV2i+e+zNXSxbK7Tpa}Fm~tK0+5Cmz|g zd=qVePKdNVx^>DVw^plZ?2M6Lxb`!8Ti#RkyDG;^w5l=4mTJ7GuF?>G>j?|lQi82< zNSi&Ar21!4wJGm%haIm3(&qHRaalgKQ+Zo*VUmdvO3d*r$tQiZdevGg?sUI{@hBMB z#c4dG%$ziRt^bWNf~3wy9fsIN_Xz#^hwnqZ)3n%{%nU9mIShVGJbF@_aV%R@{2`Bd zRRV1z;iLf8vnhQhV!*)}h_XFiU+=HG5zruPk-I(^EEW2+SP43iUg88Ktt+fn{a3`C zxH5^rzt^)}NibifBptLnWW>O$q<;o81Ytp^|JHO2c^)R9nQizz@=pua-L?WcDwzsk zqLYg1NS}l0EoS1SEwfU_n>3wtIkq4r(>>1vzP9Z)u* z7!cFZk(y94Ta9;@KGI}VuVTz%OclFRP84+NBUYBAN9)j18h-Dk(N_YxRc+#$@;E!G zk3>;{dx`$+A4-y+OCDz=U?O~&oq10pF2=@SEP`h*hn*uC*BdqRBV;NUWL%7GQwvf+ zy^@Jg8oV=aF&&>FIZfBUhPx!`mVdKBuW_kcOjuX6o{4h~GUS(Oc#=*IhjnUUK6V>q z3|r^NJ1i%lyLPs-RMaW{5i$=F!>FC4M0Pj0<<@G%muXC?eGi&&ai*KS|^#9Ba>V z1r&49PJmi&clkkAhrws5!q)&@Ng2>63rG~VPQPfM6P3_7JQhw!k2;x7`97!rb;o&f zj*N+5e^fk>D^vzYxcBT!!vc`_!+5f!_>XV3z@oz}r2l;7v?ybOOoLg1yQEm1p==et z8!M{V&DaVz@Xg1^2sOzN<|B~4p!Qqom;IvMJuhY^iq(pcg1vcJBD)9j$F|MVwyRM%Pf=l_jD+NyPHL%YE6 z$(-O5y>IX=Oj2(?JA*YBgFzC#Ok z9`8k0Tqim&9(eUu$uOl3X@wSOFmmcm0q`1mIA64Ve_<%3$nNID@10j(FXICMN0-)z_1h!Y(wFt@%rzn&KWkzAN|(aV{DA=J;-G z#?ZdfVo{uhmv0)tmnXPt7NlYVPN%)+Ps(HATs zB#a;EeCAVi=f9W$o`(OvXpJzf;CLh}-04ibR;6BeF3%HSpb7P|@BS;Ns&;?bSOo4F z4DlH!B~h1(AX80$!u6fC-}OET`Dlw`(|?}OMDd~ z>qFr8tnPYIjcmoZtVUn^-ei%&OQA5Tc=Z`Iz9m6b8v)SNDYgGI z&ufpuaQSeQ_2BtH5K)eKXd4pr>O-P(?zf3-LUZVNwLsusL-~7SqM_*WS%%V#M4_TG z{P&M5x)q1sQS4zgx}C=u@Q?t@YU*P&n!}ih@#Hx{2kRN*I*QhP*keYtJ=k?c?y9!B$5bcgrQql3d(MDOE& z$&4)a62X+@f)63w)4wmU=x5`h3F6ai?c0HhJ~iZLYXK!aa#)hyA>2 z|mZaulq=2%a+*w}~-#`f<0;rmBC$8kUReVyk83I8Vz z9h*!SORnHE+X=(t1767g6#NDfz8iGC>whkQKj)G}l@4r;Kv22N_b&h+TX2u|j7#Oj z(K3uiNL1XY*yk@SMq0V^nF^C4tY7F%Xkl1!XVbIhi9k&fR@zT?lM-aSH@RdqE*fzT z0x=nU5YhN`oe2_Me7X&Slwrh-emZTam}o^KV=~utowP0%qBQVdeF^BBD(JrsnqT=g z0Kw~8J^_6p*PaLgV@w0$mjgf4%j*&bCxW;?u04g`wLQC{3<iiFFlUUNQ@-0`3U0PTr^* zMu`6+{ji*^jscj}HzT-Ix^mFBSE+}Zet434IpXr-z;GbHM|<6Z$ud>QLOHm$q>Yj? zi=X^?XVKh5dmh63E6q?c-(MkM>f(9y>kJ)X*W=($$*zh%V_IowxHcM_Px=q^tBS~D z^CNokYN*qIzqTFLw@*J|W1E6Y93dEjFM7bVH;omm!&C=Z%kF zDZ!5^rmEV)HlD6O6Tr*st_e4;^fb1cMxb2+e*K7{dMXd+lY~LT*&%qoG(^LQ;xu2U zlX&3i8OG86!Vntf_USh9iF4*U|J`}Z=mVM)PeAs{D4WZ*4$7P zB%t)P&$2Kr04o8Xy;J`g@KPzWe`1T}m6IZ9MOy`GPfato?=$ik(>JsouPv<{^B1k$GpotiH# zAFc}^jX-(p!24l8(M&7@pUe|Pfm=;J8d^`&7M`y}lC2ikiklLO3&7s(v`TZM_wLvp z)BGvu*V#(5myOg0-#f?hZM~gOm)pbI4r6l2`c;x+BoKN zlf8pTUa5LIE_z>y*IP(5Wwu|3hR`D}LJe2Z{OO%LwF75itx_bm2;*V*L_d!<^U`113iZ?AUR2fo{~@G!O7S z8ry*a+L@ya1s~1tUwKIw=9Y$~W4(^vWXYd@p8Pzd41rg5Et!ZFn)0i|BZzsFQS{Ma z45FpX$A2OpdxJDya+vhWuRX!EMr)~=G60EB#(9=Cm{yUH#1~9tH^>Jf<0R6m#c}G< zi(K*ezx7%l*|KrLE}7Nbi?ghND_o~9`pZ1q-*}Q*Q`{_{6rWZ;i3So3-$FI8e&&NC zWaY{pZS>)b>-mE2`c_1^jB#|!C|63e+q*hQFKyk1RQ#UTkJI!M6}>*G=VmpY(8bq{tn;^1f`?7^Zc-BLmxn4n zI7ms3JW&2@wCq%Iun#b{=0FF4fUU|6)~D`fAdrMDf-%qb7}(_}O-Q%nk`;V~i0&E` znTDr*@a5IOZ9_&vz`~lLmNpX8``JG1kxEJD;}0!4K|3<0TVqBa%r23*zlrBZWH4U0 z5PQ(DoTHN$fb7YEFYgjdU<)3`W~2TCFZR=#A)q&Z+nJ$iP35--s`>pS@B(Z1_+$t{8(iqnGXFSA(Eez$U z(rAcMIv(%#M&j7W?q4q*k#Rn$E zuip+NtT*wwH#{;4u5GD8u}hZ<6@&20Q`j4GxWAW}!MyTY;KIYKaj~9lLj|ADb-{w> zXQV5^!qH%Z=(nxMKm85L9tLs3cFQNel6fR6KmK|2x@yy>gzqqyx%l2?3(eDsLCocG zdslQ2dcLqbO%Nc`$|v^)KCTKql8YQ&?l90WQGtlNjj$*dWc`kau){M=;cMhq|fFjQ_6$TE)+((=L zN}9jU#9gO~MwryIRsj`Atd^e}?`()lD^;B%s>2xr9u$3Ux0maqBQ-M>|74?_%Xg7K z!Rj9hvpde``3walaYgh+!5Q07qw5!{qQ@py4<7ToKiaHbesEVf#mwc)!Ha{sUwaYR zYil{4w$X?jszTm52%aZddax+>6ZVji-I*L2fukc8YS$2F;Fp7qW|#QMx9#UKh&WC@ z@b|j|WKkGzxI%6W_|)$N(vBy^<2S&=M}T&+nZ~}8nxXRO<)lH7nb=UnCA)@o7GYXG zo3mta!~WY5Dh@By(QrLSG!7x6di% zS9=>}2G(da?F-j0X5}QM<)9<2P^&l*D$0iYCMgnRBFhgP;FHiQ{{xc#7njIn&F46G z?iOCDCSZ+j2-Bt2p^J`aBdnQ2?1U{L4m?WeF)8Z<2czjUtR`T$m;{Z_29g z>0R-hEnP?RcHD}C;UCvlJW`!Q#=eH%5m;&(#~y)~Xxx)!XmTP*e;VXL8x+aO(;`p| z^Y7W=lRA)%A&Qg4Ci82P=5l54I9(e#7KD~f&prgcc-_0=Y$*(6kGR#%a+Hj=nMsHH z{nStbI?Mq~mcO0m3g4GMOW%!sg=~(F zHo*;$bSAPDVg*dJd-V~f&<4;QrUGPQ6G10(WzW(3hbT`A_0#Y>R2$q%MZMcYywII% z>aI2%Lsu?S5d6~Z&+thwjJ}cHCua1T#4KIVsE)J)J~nf3t4Di|CU2=n)FGexBvJ*U zcqjy-l@EC24Xf1KX1_uW^(#D5hrp2oIs)xY*_=Xl}7sic0DaxuVQ;Vj(H8jl6{ ztl@;=7&sO8d1Gy79NJS|g5yuZoY}H4{hxfL0oDiPGb?VB&s?rXwe~sbb+Sdvx96Mi zf7XvCdY<~>#8qEs6=adRIh)T#cly&iVqloGZYgq2DE$sBY(0R;w#HyO5m{Xi|j`ryzeJhFvObXi}zQ$^dkUa z8-=*j7t{_XJ~$Hv+WXY=obm2O&HfejylNDi~KEqaO>WLW#z~4D&S_4?L?|I7O zd9bOA>y97h8sWz}k$zJxC8agx00PU z=&q>}m9ckFl0H+8hHU7@QXQTDL?Q5QW~dH6U!?M-P2yvDhHyR=*S$jlFb&0tEg}In&YcQjdt18>ST2pa1*s+G_eQ z$i_(cvP~<#>q^Bp?-6%4Xz=QHw?E&1dQfBsGqE1{N7)PW@SLg91&af=IdJ<2o23%I z=B3MHDwg?zEY+b7?2pWuog5RCD;Ts$p6L=wk|sWaAE$aA+6Z*uB?%5v$opCbw9)s| zLe|cu36WL79#gea+kAOY86xuP@wbA8`P>mQkI<_463)vU;mhz}ev%wYe9GJV8DG zsI*WsdD7gNyjS4W75N&vocg7{z5xOXo$IkwyV2@+8uJ0z_5FJ|yr3t0HolQ8DNX*! z@UtBrYSwpRoJm))>Ui-&I|GfHtg}9}+AglmSHBzP+5p0(>?gKNG`pAQ!o9wA#@CUV?kk=n|xk;NAC7^On%cCA6GUg(8h74Mx zmW0D{fTc@BUs1k3M=8z#svN%Ei)~)D$!SRh)g|_VkdkQiW;lkt?N}oDiND=P-Idjx zkXC>GUNXXJwB{;*6!`ng08u+T37|1I=G#2R0wvra0A!Sc!<9r=?}l{$d_EW{5PB5< zwUrHoXWjP(om^Xc&*V*LNj~HwO;dHpPQq`eu13BY+nHVMI=pjOlsk;VH~8AK#p3E# z1Ayw~&8+%!P<)FVQz)NqdGfTyNTcPU!_)~5lQhDRYkp zC_%1KG3Srg*YlBCiN@6Rz58(IAeQR&A_FooBDOZM83P*b{nB%0neKaT#g$Y7rGmbH zHMCz_Yq+w?u72_rRDz6F4}2GfvaFfx80_zu;fIdvk1$FYLSXCbPQ#V%gzb)_Nq(}y zU3ZOC)Aq>!)bT44i|W`IwFgrG;@_%k*I%D4G6?l|eYRk%UGdM|8h^+cnFz~LymyV5 z5h^5j|4ieG`CvT0^v)hdx>x$4e6v^czfVQlAfgj#Fy_(pxneG?yXsOU8$@^>PX-We zw`wab$am3g+C&Uz4)|>7a*fvwKsEZ&?Ybqt9)qDXf}-cC5E22Loax}F)rj@7O7$(2 z?!By3nfztcBnGSUa1VZ)041(8iYs;m!`C^1Tiyg?|0l^IwgFc*BSY;i+Ru*Uh}%B( zpGlO&;XTgsH^=xdf>7^jmsz*4(_pfM?Wj~cXnBx z$yXh{O^XBq{@qVmy!3{Fe;!W@={=aK2j2UzP5%pMBJj0CeFX*AMz0*|e5> z0wrQ0n97T;j_W9N+s3LX;fTC8`{qy)IZ0K9riL!D!5uE5b9WPVf&!-Q=RVOjTSwBi z;k8~2s=sRnuy~C3mJ|d`StNjPSpD|gN1T; zzn|xTg~NK#smNy7NR@gBtcTMt3~%0kdbzV9%NPq6P)tbZzz0`C{C#mdv%>;Ao>|XF z9T!uW%f{;V^q70#wi`Y&^GyCG4UkW@$`FG>2r$|+R>cng%Ay@aip@1NWmZ1+gcN$V zGh=iq+^Iy7a|>y}@#KfqSDsgM>yr($WF&@~n1*KGhMF{vmm|Fakd5mo!~zM$Gew zn{T}s^aD5dq_;fJQ%))f`$5s3r1`G7tNu9Cv_YzL=G)n86=SkQN(esj_>Q{^f$Q0l zj$sILcM@Rv$kp*t$s4ktEp{iiV&b;eWR+O7^3?$9y^dc_N(V^%wbpl*ZmZW}s~61t zC)3`KlBcpmunVa)|J8NwWr3e`izfB^AQkzeKpWXQY){k@)2p5_!R@8GcPFT#3p_sS zU2P7<-pWbsgYLk%M&LUO#ycYKV59bKe8nkHyyH-9+I^Gtsekp|x9$Vh6x$K2JW4MH z?B97keW}HJL>CBgaJvcIuqZwH&v0t{zp6rmOjcJdt=5#U0gz%O;r5BPbli`~bn-B~x)jPcuX;Qa4p=fVKCY!AcXB)_9R@svcMQ3a+3Qf#anpAW6c zy`hp8b*Np5O#tA*6rhnIK0?8wYULw21)NewAS@DQyw=aryfmQb0zC~6F(8jHAmH%yD&YeYF3g2R$mBpYO8RPkdMs{f+{XJILUCPEi(lE9^uM}al?6z}`_pj_)mbUDDEc^i26 z^#|94ClCxrF#PNB6U=hBSP%DQzhg!rc^sg`bNY4$x@IgCJ_Sk>1Ce0sp47kZzXIY9 z|7!cT`@e6#M>bl%n(^E0X@sPdj`Wk)&2m9A|eG&Uv*S&;NUT2*W&tD|}H=7Wpy5$Op4C z;lrxxFPj050yU58a@~5snJrO;gF|XTcxBFwrycmk?zoNvu6Cu}Gr@DrqBwXLlharC zl1vBO)RIe=mBUAV+QtI_*stF9v3zwjExdyrp!b|Em z^Qi{xZ+SxKi*%CxJR`=belBN2@N*NRaj@ydsNK{UIK2gkP!gwG=z;sfD^oQzTA#La zO5vBp_e3}q=cE4-Kbqa{n-PV-zF=n@csZ2&dJ< zfPr0T)65}Y8PR7?#2yb`jv;P)6TsvSoOqenNdzgKy#1i7h!>dojt|V;PIc}Z;55sXdP=l9(^p|759HpLCBthH#}Aa`oZ`9GAO=*n{lX#bRAm^gh`ld{8~~gycM6iYEUB7zn&$9I}i%`)4W;V0V(Jht>^f zV!k8yO{{Cv1jw`yBk8d85UqHM5mK#FpJ3fnn2WQtrDy9`CEQO68Kxw??(_}4`m&iQ zn>(Hh5S=F6y#FT24V9j|Trq(4`!-UVkr>`Hu!LD=3vz0ks3PQsHSoStgeYXiK=vGzZpKaR8a6rQN!4etGo|kBLTOdJzt8YADqF*68=L zY+4i#i9+9$xs`EF*s$V5G6!#;J-EZDvfDh2F4xfkUa^ny{IpzpCqRC?vPY5~C+HEo zw2A<6CfR4qiAr<&J`>#S`=sNLi@g%rg=i@z|;p+JN}{J+d~3!bwR|1_p_WZ*zFg8JdY2H&$(=>qm|h~`0d88 zWfyZh%%J_j4Dq6hl=rxTCAnU4frH$_ytGsCU*D1mn`Z+sw9>F*#!002LkOF@J|RgG z&VYXmonzYG{uD{CvS4 z2zvgHZG^kGrEZme_YMX^>Jp5Ekly?SG)UqM2$JF;2kQZuO3HlZJBAWt5XB?QAtk6p z;PZBUYmLv}O4#vA`t8Ta9W!j|LYfuO*R{kX~Gkj&k=x{OR zgyuxc7eyW4QKwM~Y;XaJ4k9|Rj;;=@E%@FF)P+@9Wx#6|HcbPs9Er>v%et4vJrx)Y z3O+mlAgaHtAg>Nf|0Z2za?+B6+hfpony5lDAE$d(o?L1}N0%V|tJR#e1J<;%&1W}W z4sdoDCj#!=VGrjHHMfK~!Aastb2s_g)o|qjTPwpxh%bS!912Ze_R1@tsT?0hUX>l= z0g~f3qq>IyyT|fEsc3UU%%e9f@6tYuSbu!PUgly3^o}%#>ptxjwWfP1pM1AwR0`_Q z%ul*q5UsD$nLPe0@(4Nfp56?GD!KCH8Cq7Ut-*bUr}KB^_liJCg=aP&2w@$IA|4wz z09gyWU?8N!5TMlMU;(rK)zk;6jObF@{cH>4aH;$*7AvDf@#!;Um?R*(8&!b z5TAj!VC4&7_>dCm<;$(+T{TeoPk0>2{Bi?uVfbTXN!yb(S#~8f2){1p713Ty*{jc_ zRf2HseOZT8+!fPXa&@%N3i994vCh!EtP(;}!4)kKE%-$Ir&(6wqjxugE|6~v?;rNi z^h=ZRn^;Nzm0U~}M7eO*=BYA-tWFv8ZnP1qe?Ete!mwVw)ZOGc|2qNyR1{vBFqdt9 zt8xG7xKiWPD||`~g42zB1A?)^}Kb zHZN&k&5<=QopZ~J#!ma`OZ1?J|EfUB-SQyjl4>N4fd(x7L!Tv?k{Xl|Zi zj!2NPdK#Lr$aN7wpAeRyx5Er=tJ$^W!M|(Z|tTlIzdC>lf3BIlUt5Nq<^Tm~-|%FF_W;5qeHfl!yrS z9V6$z>|&Do^kuvZw?FH)k}b0zXk(QJeS<=)fX#LP&{-( zR1mXZ<8?!2fYl{@0Ezi8RS2-g=bTa3d*Q&5p}B_RA`OEM>K{D%u@0Na==gQGyV{eE z-kFU(OR^Kv7pt2ORs?Lq@qv7IXi2vKqKf33 zR~4e`{tcY0mG_o&UQI&*yPiUi5dRcXr0|&)XZQi&;?5gVlgjsGONiCF!slVgk!>pJ ztZJM|yhmK~(d5AOK36q1cB9m~^hW}b?T;y(@{Wy2Pli96zt0DS-1xLeo%g87+w+(p z>nEs|=n}0MPb;Eh_?gkGvf)rv3^I(x!*_Q~yK^$LoJi7p0jnH_?F3AMe?u6qKfACz zxBXJe>2EQe*q$tu`?_BD9)1(HV@WigmKpH)8qa8vN?apP0c^wh78>C_RjVEiq^C_M ziLc~F=qyRnDrNWFk00VNCHidqC;&lO-YJo^ilZH&&-2-nnG7s%+mw0h_s~!K*O8R3 zdXceMp|+2$u<*a4dybOy{rsWgc1HcLhxIs2qQ3&MoFc#~p7=ka}> zSXC^xPkO?8?qUqhJM_C!S!&(m8G3Jwc`Rc0Lv(=16$e0NUMq zg&0AcMq)4ca){?MH15c7r++038WzbRm^di@BInT7Q-|RVTyl#F$ zN#cH-@iNC$)^ouQ!q6}$)J3U?09q+e;jv%7R-)S-Tg~Fv-s)g$Za{wkkBTK+0U;hs zJXGJte6PM&iTX!8$oZr`sB{db{2cefDoJ1AZ*D#m-oYZdmG{q?_rL4IK4v0^_kBK= z-j#xDpZt3e8`$7C&CK}3T!m8lU>~eN6kQ*41SgS%V5hKZw=j)Y0#FP)dY2(Th|uUH z*sKv>v8vZVEx?Sto1+TzzFaFnv5g#17WrL9fQ9+6OXt`vpdPYF5qWs`#godJitEns zqdqueW_c6LUNyQ!6e)bV(zIh${I@c-qB98Qqq!2VR${EvJCyR!=6RF<@y{hl_Qyl2 zRdh>gWyr&rj-TmBVa~l0g-EWuk#WqPgx0ure2V|klh;4=KQV%yBZ<&=`Hd`3vbOwb zM`EK7C~{MW#PqMwf&TJ@9#J1^mA=^L?)=LLp?z4} zz^fRs$dnB19)LxSBwkz09b)2&L~W|Jf5_!{@4+(syl>;jtxMRO)@!;>_C* zf|Li*srkh>E${4jGP6<;xw<_rokHRO<7G2pVd?P#keF5p9sPK4xZ#+U7-rMwnLkG= zQp}}lGrZ!*cZq-z186@_t{%;RgXMksAD(?aQ)6-CqZ=`L_M!Oh1Io|y@hP=8=Z;nE6WMYM!8hA-?f{1$b8cd%+$!rUIY(C?#tyd?@}8%cbPu%fuV zHmJ?qK(RGCn^1^sz0*lppm$UUzNT_2bypgib!{*TbgoE-8kMliGrE|*OR;L`nD~#8B-YU(wWNs_(+5Un**Ep zff5*To$NlVS%x59R8Luue(S12jXGt_L*fDL?dgaseG8>+IdO-~L@F|zkWY>U^Dh1x z0rk7Qi)kd!8?2c~1Fy)kWslqI^)fQSdt)j@1z`Z2M)M41OCzTRx}ZKg!ot(XDZH5;arI>LD3nB^1q++cv|OT~`i z8ZoAX%GydeBvt!>ee56IT-VRx%(otrPQUJ(00XuH?IE}$Y?tClldCSub+=SuqEB+D zkt!~vrgb*u#_nbS1i$a3D{OkQhQ9C*_ovEATl&}ISmP<2KAlQ_-Grxw;okhm`w5qK z$_!LEkAFQ2I`dNsF(z*}iya2}T2Gyy!JHg6a?(VNYQ-;G6|4Wf_7F}vyw!Qmqj_bZ z4>QdG;vN z=^|&NU-I7b*sajdJc@(!q=!6FXSTadlX49Q)nc-2%~l9^p=1bvHRosomH4qXkdb@k zwK%z;z?zgB&4?-P8#|sLzsT z%{Y;tU%0KwHCb3~$ktLakPPO$8i3d~dkjW@-}c&{roA_Xy008E#BLYgH~|6E5d|T5 z1-=~Mav%F2rjId+NmKW#&3}4tNTnvK&2WU!&Nh^Zcj&P(k)yJceJO~@ zoS%KO6uItbmOcCzhD!{lYhWV4@#fZO*oy7o-8*q#kz1lxvw;y#OF@^7UpH9N5Gr9D zYX;BMkr2>|+2vZuzwSUhgC&IIbE^sZG9UEj@$y~S&z<4_c`&!!@pbI=$YmMMAVTzP z!hhUsnCf~c_FROUC;_J{ehp==1oXfm^pPqb?6%TBxJWN{YB}-$xNgnc47!yy?)4~9 zW6^M%8DbP(-}y*_8Fcpo(^}Ga9~-mB)pA8)~?JOV4olI{h0(@B+Q$xC5d~le-8b& zY#`>{j%RNi=Y+3Q8JeK8lqc~AWDpn6ABE0bo)xBW^l5+iByDp*_AG z{a+ch7yxnh2-*Dy0ou!wH}(i)Tdy_C+LlrjNC}H6oR&W~t|{>)!iqZ@y6F z{Z9uEMXfon-58Px??G!D5oo{xn_qE58U8r<{UL@3iFJ7md=6aaM45`lyZE<6eG8P0 zM+Mung>esC$yKLmsfO4+x7~jV3cjMTb@*iwBQd_KiT~bVMD7G_Fp-i#3Ag3VvwvgJ zeDa^SDwA}O33bLZdDOqk{PT2>}^ZuiwC z;D=h{g{AxG60UoTEx_=y8X}RY`67bD=rAHwZ~`vs`Cl9+)W^D#c=^|MK^l0IzPS41 z>RH|V-K#!>g^OjYfWDh6G?-KFP~=n8*#jfad4nU}&x-_VP)ifu|NZ2NXLv%`xe)Rm zaN2*^Is&#*_a^vh`05^UOnY*g&NH5O**!7oW}4H9xfyUZnHgZ~0K+~v_b!(td%2#s zA|rICEg_#ru(Op_*H7m-p+vt=$fN zl0Qxne}1|j#4)x@(su-^ZXsUZ&0`U>#&wsB4sdxCkP>pfg9q8I)PzY^z-%`J?NJ5B#wAUF*E2Sh8%o4VuZNg zhn+rNdZLtMTj=$|uiVd*tJpT=#8*~vliD`09q3=`vI~SPiE2whwhMl##D7H+MK?>c z9qx91xPZQD#cTSpLwZk5pbp&Wau1%yZ&}IM+_TuhJ}t1BDZ>aUr;y5D*_dLM_>Nhu zW{83uG!i$muzqsesr7=fVVV|SlyYf&jCFxqiSH+5-I=A@KglOh93TnIQ06WWwkHLi z`0(;_E#OI;>y-BS` zRm|I);;aH=hTh%rn;-wey*2XFe+YF-UJX&cX5d(H!3o{=vw*t1xcbYe_}x`48RXm( z2qznisI9=Rd#nlMm0S%6sVZoNE5d{J7WmoU2tT+%aICh?!;F{08 zghazF>D0pG24#JQ)Ma6K)cNP>Qr8}e3zM4XO&dkAwC6^+Tqz0GK((Yks9PR52Y)ee zaK?{9Fh z1OzF{6Z6zi=_B4F_4tM&(p6ufcX59*0K|pS-EFRos`0#BxB7L5LxZ5_UPTdAX^u+4 zk$9hZ+`{9j{Wzi@62z>L9lE~Nu3YmmKinE@mFXWlux76q1Ml#$2J zy~IT%@vm!(DmvUe<1z?0uks9UEt46=ExfsnMMi5nUL=8;h@pbhLh_fZRqa!_-VAAd zZ4kcH@p+K$r|y5suWeCLiF|VN$gz@cGdn9NDaOHVBs;=*wIW}drsdk;6KY3lo`2{AI5+U$BDWJUFm)aqj6;(x(Lbi7|Yf6yphgBoS@~ z@&3jP+jYo3-s7Jh6Ll86nw__T=~6!L{6`!G;#on#%J<>gaa>pc!8nirBEEOvD83b2DkFGe}n&vL_Vt7~BYWb7J?oTY5-bIK) zp$Wj)JV^Tv$30cGG-B}zio@Xc`g9iODv@tv5F<*T9f*EXNsILj(&5p#`)vj&LmKE@ zJYK=(vAM@6xoIfSeNoq*%i(xKmjsrk_OgAueO~k`*L~Z7e zG3nQs*XWS(`E4m7!$u$_u$@tYTjlC(IjL@S==w_alVmiyuJ(^(Bk{5D*_u!pd?>(} z^uz1f=n5YEtRF!919q7GvVTZ946bY&zn`pou#&sWCoFn+UqEnf?{`r&uIVIm^~=t0jOnZog6W`^$>?)m1L z2WWq_QHkKRuh>q}4<3bzfY;F?HpDLG%OYwa7>9-nN+Ul$mb z)}d>ObXR{(Il?cG)(n0iFAyZ)9h^xvS4GnJ9BiMuw#9}|PnZ4``H#`sEItn+NY_H$ zMv-g$J)?uqt%56~B=5pwGp^d|uO2)V^?gePPWIHo$*p{ z6+>TaHo3+CrpMqvE_U%n%+Vyhm-mR_ATK2a?1MwQ%*mg=@YteVRT%l&W=yGK4z;hMYLiI-d7jH45`uo~Q7q7}y zfK7gF5dWbfX3pw)gOG;zXTO37mt-de`NkO^)!O{6<{4L)>i%1|53+~T9A(i`akJ^c zVFDALp43U8v>D_o9SpxwQi_`DP?%B&Ku-1){GRrlX=HAikQD)Me2ovR&?D%ca(EBy zc=&6#_LtuIsY!%%sA6fY@p~ziWhoQ=OCt;>AmG}gWuKyRHw+T%Zbbhx{2bgE2x;5! zB)Z951iOh|T-)vNQ3|j7e*I<$-p-u(XT(}{B8#*cX%1cNXeg+HS=?>T`tI0~hTw>N zhzHIt z-wJuuWFu!DV+jd3l5|wjKaQ|98RQ;JOz;H4ncj#z+^U` zrh{^b3RJ;17r6k%*gQr2UScJ8CD{Z1z(^5DtkdW}FR`S0=iBIWdp-)hfq8OYqaLfU z1j)d>Q8r|9uSww}e2xa&1zfFBm|-k`-&=jWhFe5At#mxI%{ zxjnzZQw#Kz8CyxCor{W>(GN?%*p)0Xv_PMTs$O2ZtL9|Ug4sOdsva*IZz%yyz6G$* z;-;YwJo=@9yjDSv?qfC`PdR~rF{7Wd);QPDwHYZ!7!Y7Gm~U! zPTv^s34I*{I?#&xv?sFNk?XNy@n%dg#LZ~za)Xn18G{%qTRd_Op)?D{3rivId@I6w zWO>o~SO{H*=eR5;{Z(3$xo3UK!SZcP9P99=JicQ3&^^Dw^?L%;Fj+G>Xe>|_dx)<~~ZxS{*H1P97@Za9mlfgC*wjU)~yV?`)M#>TrI1Q(tWCw*OwNV6^i5qdA5vX?j-LrqYfo7yX$8s?i zB&WcgzHzMi`pM*atDU{M*6tg4=^GUi0(f9>GJ;sxPN-fqYe^WAM3x@MzT=A*ViVp~YzR!-_9svJmMlBU;YuI& zB7T*I{Ix8mee5wL*+JO8dUtdMBbwX!t(~x2fO~qFx(8f*9Neeg4#bHB=YUKSmdzEziS6~iVSC^u(*farDs5R(tY^Xw6_y%; z^E>>!^z6x7;=2R?S(xHg#>*bjZ>y12AMNW>=vUWb> z{bfD^cEU>vj`kl$t;6MidWc4%E?U$wc+7wgbwC7g>^gFH1o2o@d(9PE>al6T6J;pAt)TKLm zG5w}$NZ@v)%JyIY?_6iiObOg2t$}0#g|R3~p0~x^h4LjU-918XT5Vz;XmRa@&Ycu3 z)(0M;zK)$F*|@oUcs1eSgQp#Fq&9Ykc^C_x)1XTA82F*U+S-Oo?Gl)RDsMpc70trd zg3{VgqdG=0Xlem!%O1q5_Fj|y<8stHbqkYdB(dUj%{tB8qLLJj^v^mPDp^~H?Yw_~ zkM}I-*RTA&g+nbnt+uww4yo;%)&wz0L)F6@1q$e>4xDKg-+Bjx9RRI7H`SOGIGhxG zD$V_3JanT!yi%WTyM-NfD8m|uru{+MME}-aT@wny`_(~~bd+yN1DR4@833DS?Yqm-|<5+gF7u)C>4f?f}&Xc{@vbRpcB?YG2!*^m1M)UieMh zw~N)&APr53HF6MxBukt?E$KQC zB6A}^=jseIY#R|bC#fB9q)U-tfj;U+X^&&GiiY3hT${ym`!k$>pSFA(8+*`kFHK2q zAzFTtdV4^C+7<0JROnyM>u0C_Dqx*`=y-KKDM-PGzwiTFX!XdJu=tEBfkT!=(Tl@2 zz!_e0q8m8?nYo!t_k9D{N*svv7bn9Y-9Y^K|9x=S6m#G$rc(wM0aXw+(%A(J6C`6S z+jY@&Q3v8v$9>(}aL&d)Mz+jc8?^qi8FJ|+3TS_^d-=vx zKFR8FKAp!#ex_PL&W?_3Fw~_S;9jSiqaVR=65uVF2ImC3+dre!&uGe7NGn>-_jI%g zj1)1_#*OVA*!_CK(Ido zaR)cL>XJ5VK%w3MpW!cuVY9{^!l)JzJDwr6Wt#I@(nF-1rw-P0a_b2_`=<8rYuS%R zn@fUwb*pJhgylPNKPBuoI=lT3=wNYD@S8PXU>Ng(7z5dny=~6v-k$-tPIftYNyJ>U z?xgCCsQddaz=^zurlg+=_-(qqp4(*B$J19*IALzYuZaQ`@11i_r(kQ$$XLPN?V5ul ztIh)9K-#Qb2YiJJQQ=e?GR;ixB86K%-GlKjt=0`kRqn(XMeM=VLhc}^&#Nrh!uS!Z z%=x8p;9w~NqLaz$`v-5wrJWwMoZfd%!M#ExN&m;a5sYxy|6BkR&5lBpR{mTh@@O&V_ar;XKeAZ*~?F4PEGzjal z(F_R1QT?90Le7%LUCR^%S*B;lk?&Xf}{r(5{mwO-Y zdtT=}pA~+SSKH!J@e;dPI{T-7&!;Mo) zhWCtZ*wr{k8#RuE|LSgxnf`TL;vhKSL}Fe|-fQT_#Hv^@r}wor1OAm;t{17?V|QkK!+JqCehFni7@_sOh_S3HiwgNHRV6>J%EwIQdXB>rIBo^_yCT zUx(?^>NTtUQtkCi*6#=vlTx4KDH0{p%lDMb9ehT3K$6PS-39q>{<>NR zm;Q?W6vAX|ck2|BQDgYMp<*klK(QoAYGrbq4=m$~a^5f-DqP;d0LZwv)>vdBEqUwF z?B35U0^_!80O1I<#q$a!MkU*&>y`J=Xe70qdF45 zLGzB#Blk3N57~M-L{F*;N60obdO(5`~06DL?qHL$^kx= zZ&>@B(*8Qimsl>B)(;P+#*q84%;u=Ek}`aI!aucI3mFLhzspI#YoT0@i0}~-nO3_E zDiu&ZT^j5Nw_7~R0Uc8X{;+!2{NSTvIC|ETwaxem?A9u;`||VXmc*7E#)F&*ATbHv zj?(kR-LL>|!!}D=?QFPEMFY&xYl<>o-kl9bfhoN-f55_9j3*M>KMa%&U+A6Q==?T8*J;%dbIRf-;pYA&M@X;-D*1i z7wouNogBnKFJa&IvY1vA|Np5K0%Y}@FW<8GM&%{p(haA776W?f?_Mv${1}+&Q zwqiY{_>6{XZd(sSnX*69BnIb?zu+cD?|-WnbeUiUiP=Cb7RpQ7%e7+5?s6eMIPGjU zMc(O&B1N##BW-b~)1~Ec+1X2sfFAAk)10mHJw|})SYZD6SK$eyt{$9OJ5RosaMzLJ z@qN0pgrW5!b4zH;U{o#0Oxkph2JD)ao%=C$+BD)s}q-aJI zRv_?_7i8^a!G8}&9D*%hrhKzbbt~5$gZ}tty!?XPp?@Ohg+sdgud6Z$evIBSgEkXT zFr1qTb2_M+kCX*=cE4qSxQO0Am%3QRI=FZmSq1WSmxnWwXg9UZ0pewPh_EQq!vT$B zr>S6+p;SF961n^rFJk%>Kj-21{K4c)iIG$o^~lR*fyyIkfmj4G*VJ3y?UlA;T)-*a zp=(PXBLDCBos+S9)o-U49|Q;`3cK>Etz7xJ!nSU!y1itzR) zcpaG+%B%9lU;Vz;WQ^FyHr(GW*FsyJg463D9G~_TC+so+tAqkWkS-!KHj40C#{`l* z@5g&wi85gFTWcxhtDn3UdjRJ}c5X`dE&Yc1j-vS8=yex>-1SUo&?YGzuD55o#H zqu;vsdRpMw`G`-_89A+FfdAZcJ#8dhXy?z`q?WOEW2f^zGR>T^p?i$2tA|TIzp;O|ZwINSoEoHpO z^E$(+rz@ycjUiyXPQaOd?C_wNPj;M@oP$EzWCn~|6`|sxu74>Hp}A~W7KefshCT8b zZY3YJ-}z8ieFhH&N5sk1=sqV?ZB@rFo&V9j>vNdAyGs^Q74Y-L^v3&7USa)(Vqo1c z*5zUw$Za=yStsg^)izn$fK4x%YT71W=E>mxKY;sf4vwrkY(SY|Fjp_e{IVOMcoOc4 zBYBhHpj_^?LjFoa*>utBiIsMyQ@V}ACt~Wz&p*Z=u2;$4=%K9uhU=K}T6fqD3qnt6 z_Ex4S8z@F5T&vv?+}y$Pn2+97bMc2P!)8rU9w8Cxm-=O^ca2HiO^SPZ^kHQ^N3RZ3 zn+W1i7W+E(TVr>>r?uQoQ+&+)4>A`&%0+8##oi0TZ_aEC^L|Y{j6LF*@&GQ_?5jab zrX%chQIWK&3O!ckoBz6*12;xW2*!MMe)utN14?lyz_flV^mn2PeyuvTZ{Pz~mkkIT zr1h;iH3P;wql4n|Ul-NJdh5LF(CquRW$szN&1zH7&!q73bRHo4>4p z_O*+feaIKIZv$l?2Gf&nBNkyB^&~l@1^Q3dG@yj|SgBE~sQi*olYapT+1;qP(E>bwc?=sSAhQrrN8%ey; zNyxa1bNH2;zzrQCM0=>y?ZDv?KUsMKm%@$IezQbo_@!-LrzN8t3G=a3T@0a zB$-^g`m+gnEBCoI_3mL7Ge;chmf}$BJqKzRDc}&e3`-1tvp#zpbex7`E>-kQ&?V5D zkWlr)w}l|sG0r8O`?1v#OT6>NiuRwlNoE}v9m?EtsD539S1<-JyAHOvGW(MOqtivR zUB4Q;sFYMLIFAKT=UC1#c(OsEMdN4}N(^Zq&Z8jZFUuikG9>Ico@N`*let@10Tl(Y zbC$~O7v0(M5vm4Z+oCkt{#_J(M)qFM`u(zL!U213*Zz$$hVRCbb0cVg#W#mI6)wKqz$W>3pn>%45liDw^ETFqD7 z546xl)PqV8>K3nyXIzRANr|LDRv#!*t^i_!J?iea6g7O!@%edv&-;)sX=PAuebbj` zqEpWYQty;ciJrz*|Kr#seFjl)C~TS#4Ih^8k$!_A#CeVY@@!>jZ)W&*(%Tsr zj}x5JkSy%X3G|Zv3HdEXj6+p>{_qyd{MmjZ&}@cJp*ncyy`D~b>q7W5c~WvGCw9fM zNaFDRu#5~pGjbzF*2{1>A|n}^zn6s)%u+y$fIS8t{yUziuPEmB=+Wsbg3aB z7EG(0D^^&jBrb;}6|ftWg^pzVYVDc%nzm8BlQE}zQ|mCG>KU!47Otu}X*KH-1R`I= z)4z;tRejDuKHRN1*B1fL1VwgZ1>nmmpSO?Uj~`49|M#bIj)$#W9C*c>`Gehk?07k3 z(78ie-MDA#y(o2*M|;+BX}7$By<(i*_Xa##+seuG+HG=eH~@&fcYSN5-FIlu17Y*E z2_$t8*(BR_X4rhuvp+MTs9+YP{dyvo@iNGa-Mj0JtCoB-U%~-nIqt-xB?*}=> z!Q#P-xyS<}D9beLe4L>Zi=$P4<WAFo; z1Ik5R)Fjxf^$CpT&ueiU_YIUm`pf}vDZx(8A?rVxK4=Z%cKEL`0Jb!>PqtJYjIaDU zKhpWjZNCpjXWg}=86)5t8vLDqA>N$7%Sv93V{7^s47ba;MVFoI!dtYzOY4lLLHraP z{Y=_C2O5OG>}6~fQ);n(y!*!8gOq}HM&!ixtpb$Ui+17W2$zX+P@)YbqD7#Z7Uli@ zrBaXv_3QPT8-_iLxvgY&SSEYQfAa%5S=n{6$~%?4+)tzrzwZw zT9oli5B}_tx8nw}EAYME$%7l6^~*guhP7_*+|&J@9zd?Oovw*1$7qxG=RtGV6y%}b6qBb!V$-MA|P^@|a`8a$7bdCBCyi!vY_bmgYLMRl- zC%-38_HuR~B;;GTrED8rcYHy6*lTVa5=s}rBqW=k4$G%54}G`g`D$(!UGVeLts>`b zX&YhX&u!-8X@r_$1o}hKG^WKrW+{s6UTu_zk{_)}+9&ZZBNJcpnF>HJ+NF+zPVTLe zC`gtFHJvxE2sR`!ej2t$xyiSg@JRH|BE{jX_t8Q(xkFmFyo|;i9QMH#1m1AM)~i*d zTIk_OMO#hM`sjLjqTltyON}R#ZZvArA>`cua+RDPrn%e+5=P(<;Ah-3Vz4Lp4N&LH zxFthC3Pd#R>3@5}O64(uVZdIEBcGWk?Am*;&Z*F>usHRkvBd0*jQpX1?*)E^vjYY= zYkft|Zv{4_FmNj5&HkCEYsu$5J_r{A>k~PO_(1dJ=7$%DC%FOgM1$sU>8Zo<+Fu~p z*Q=UeemyYo&W}*W8z@1xM?C8KxauaW<-h`Pe60YT8g1atirF9wY4CVa97`{%{wv=; z+1u@n&6OWdOYmOgoto`9nd0RuKd&>1RD4LX^hNVT`OKcfM`ZyXMh-4fLu=X}QIxi>8fhws)z>zwT2V&}Dp=ov zjwy#+!j2DK(OvKeb9YW=MOyD` zHn>&8`!8^(u#|n@{FCd6DQuAQf@-&t->L#BaUzQUxV@5`cr*+w1yMhf)*=x zoV}dHfw3C!V@7Bp$F7vZWsJ)HjZfH!C*S(Kb*aS}>Lp!YXOK!kJ0i_y`faDq(0{xD z2nKPgCy!f>tS;~fHvM>m#5OGT3{UYbx{Fk>IQ7+)$Du0qsu}JQUG(tfXy{piOu5-Z zkz?7d-zLm-Kx4tYk?-DXIZ15C5PGD`+vJw90ZrWZxLXgDeIEVWy`@oi_L45W?ta$< zBh=UUHB$jU0?W}v{okg+(3ZlKg*x%X zHC`?fE9u5v?B)a`JCmh5_IysX;t>_gig{wKP81wYO9{SBx$nUv9T}2xaDa9k!ka?4 z&DbUi4gv@;bRiJWVL>8jdxUYU;8Pfn1~cVN`R_?Xi*sJGfqsoCbiK(uHypUK1>z!A zzcac|az+3kG3G|YIh~iHUwuMQs#il7Q@XDR(`(c~9Ou#QwU7A)c>#D{mj$BI^UsQB z7xL;e-g|u2fw^<$3=5!k}S?Xg7AhdpF^JUM^F zOR=@eQ?P3G^fD@hAATp$c>}y|;(kFo=|N_TZQM!K*wUvt|5;ABU))UOa{#8T8=p!D_~U8%ME>V2Irm^m$HnxvYMmNC$e1*MOmbXBYvJt*bW`1 zZl%R~Z_QFf%3Y7re)wrsQgiulGeY6N<00;VjPvB;e+PpC|KLiUb1}b z`5L?bC0VV^IW?ALoblV0#V?F57jW(KJ=;y%-;bb&k6> z!0N^Gqu>83e#7WZ`$k6l-^*%8ft&a@uz!c;G_D;OsdUPuZW_44LXBQ__Q(5^QL|z` zWp=nMwRRArI5a*G1PRzqnKU?jGy=MOA_knp2fEImd2qC8-M1(B+qU9O?5FO@g~`q@ ziUEPRl!rvLu5hd`=J|ojU?xJ=48cAEcC|Hf09TKV^Gf?R((Vw{{i)&#Swe1@dF_ z8bF7y|FPH!Ep$bKrghtD#m02`dBkvBzdsx(W*XooPL!RJ!_^jDZTs&a*I7Gb9M)hs z+C!(PgGdydXSb=V;dd#1YTSeYb~XavtesuF`G()j_UAli_Q-qbh5glUxc|&{6hQ3r ziu39m5)Z6t@7`?stYxs<7WY~pqtLi#@IPZcv(q0}=kfO9b4hyKeyJRERpi3jWuj3Nkcbl$TzOQTl|+a_wH&*%phVtk^V1ad--#iLN77V8e-0e?YT^! zf-HP+q75i=@h@uR7aS)VE_}KBaxahk+X!O%uYwB^P94otejug)@7Z3Smk0BMn*B6v zpMV354hSh?c~e8_r?@Ejo{6}9f-5|!J>mlv-R*u)`J4n;0UmEd++l+HQ;B>mZ~mNFY%`>JuCWKvbnPFLrOAxRE)+Xt}yt4YA&DG`lK z`7y57u`AO?yx_);#vn&)v1!MO&1;9o=l0aOqYy5ZZ z1?$>YqV;%#ds``o!_hVxyXpE4JEWHC@kz#hhZ=;tt3%0+z@_d?|A=NJD&79wGWo%P z(%wYTgS3r(0p#bZS{*x`8XR_0`thirMoGNqs4H`L`5)xT!q;>7s9dL4xF;iAC0TT1 zfP|s#-gv}OAEIj?N;S^BZe_oQ_h$_6gddG{ndaFJ z{3p4o5Z?DIu-fPK8|mU4dE{&pq&$9x}{~okfwzMlJ+Tjnua5nC<(Ge85&_ z`64SI==z}c8cueu@#f|oSyG^N3$Z*1>-~;V3o7|LKNe0MKe6>STsPbFOuZRb!R}zz zcFz@_i*lB(^B|J6rrT@Ya8V-vq)2Z8opKVK%SxV@4qOB$aU7e~1|>Mrq)Wa2dn^4Y zm8tFab)!=tG_x3jYhEmbe+(G`QT}dF#Ib_W=%M`wM5y2}$XWzOR+r=3xSscSDy1VS zDMimsiD~n%qigf;X+yE6@gt_V4=(f55_A4Rmnnmf8;gu<3acYF1ky+6-Zngk4|cA2 zgyChD{@&=f@4)6atG(O8+w0Nk_yQW>Y0+t2cJu`UT%6RxzSLN`UK+No{D8}$MLe%5Z7xd$z7+H zq_va|EGiLjYcUH9xi5511H5|1&kfa(>s0t#1^eMm5GKyaD+bCw4xax^0m9a%1R|Dx zEd1+sv_CkVrIy+^Txtd5L(1wNn=$)c>tu4w8r|#J3dQK0&F{aK#t1+sat2(mH(;1Q z=zOg*e?=Bf-e6@4YPMFKD-$^Q3b89UL9_R&L9YmcuLzdv53gQJm9)qglViHSw&l#z+UO)(6kwwhneyUv$=c z4&H zwY{VMxu?@_;7*V#@Hh=vZCQaooPCl(v||t{?w>40S2k&S{SArw1YqczbymV#lKXp8 zO;TC^Am-wvjQs0`V5sUl1pWa6(N9_h5cXaCl0X|bH7VOGLpBu|aOXcb^mQZ7+-+O+ zWwZi4gZ&cX_w_olH|F?d*Hb|E#Gy?T0);5%b}ajZwBJS>ncnpO_Q~0L=a0qLSy%}6 zKkc>Y?byWMqTL(ATr`x@r>T2un1M1cX%EEnEFjYmBdkmmS(^Cx>j7!31XiitqVsOB znK0ILnxm(VD?VS(^6KJ7L{&UuPOlF8B2Xc6>l@8>FfMw~Uvb2lCe{AqC!Ooh5t5rw z?6#CBZdJhUx)B7p}ImJCvuH2<%YgQ3N zo3;Os4HJxYYtnS|nqq`9$%vK@+m|f!u`nE@_!nRDk6{iE<4Lln_nH_&dUJLNe^ zL;DS3P(xnN@w+W))Rb{=^V2_Wgn*P`Oc{ynf1NPseSdg(lk&Cq$u16Z{C6B}4U>3=a)uaH0tg_D4~#r!ql5;4_VtN_)sb_o6B0(t)Ip)X7Ov6~Dq6e|Fw zpYm&PP(C)k9UHm7pwz`QsMse}gOYyTPDS!=-)-zNft-h!2S@euiZm86!15SCeRqgi zAkLdX*>8Wb!fFq$uU!IE!FYLRwmBJy)UGoQI=ueX`R!K!#1H?To*UY^Ik_oELCR`bWUXv9zn_v)e@D^=;u0Ms9Y|P7MD&>*TsBrGq4f5OL)4i# za<~Qos`b*53M0X?HI$NQ_)#qByNegESw(?*Z%Redvh~ZU7g0#cDI!|kO^U&R=LX*= zTG+}T_B%aW@NOrL+x2`Bh@`rX5OjKM>X*evOD7%q`z6eZQ`95xMZO+mvc%^?7s2=+ z!->Ust<%q(IyNmoj7YCjk~I&ry+cA|ZVL@7r9>(`^UeL`qbxT7^y2LSD}RQfMNO`c z#C=y1FC}eK%I}%m?JBhm3KObP#m0}uF*F}I1WFWN=XPH!e-FF!W+ep-7Dv!#0PjVC zT><#uJsSup`*_0S$2BCogeM{au9gl!9Zx)o1ml%hpa0lQN{4Ix+Vz0K0`Mz6?3avC z>ly^H6DRA1-NqUA$~IB@9Y~D1zN!^nS|QBkxz*K$P5IuM>yqotF(dxh8LY3k$P~GC zJNQa~_+Jv;ALsBCMv{41_o~bJr1kzKu<+UsY#7$3PuDaIX$ljg1TP?&c8dun`b6f+fPmOfc3*voorAuD8!)ALz z9zmE=$M(#ucTl0&f)2S$r7i%;8K-AK7e{pAhX6C}_7JKR!Q>=*E zI>zmtr1{dOf&z64lKZJ(FOABJ;)6a+3FP~I1>%;DVV~|x*b@YHBXHT8xY8#0=_2|4#`FMq=gy>8??~k+8Sri<=(^<)lp~ z(x7CwP&6=LW~EkW(uA;#Ip)W4GFVCdNL+Q3??o6xP~>Ize#cgUbMRg&d~VEgZ>@8D zV(L#8Bhc`&8jhMSpM1rQNcvVm<^fNn(c$ZFC-Z^v6>d@A48ne63-!K&@ezQI0NjcM zIm4fR4GVL52{XdHDj*+Mi0hq&PoJWMUGxj7HFZVAh2mzd*24onvm)(=CwVs;vtHb! z8(Nivy(f5J`3QNSY_l+kQvB7(G}iQ}XWJw{Rh!dbV;UeCP(eyS67`9(AOJmjvm&>$ zlAFXdqog{#Zg&OlxK}*-bZC9|lgrsqFXM(dbfl$&EaITOcg2A1wRA9|>s;nH7B-A;3h7$0;GOCM$ke znTned0rm$g0EK;N zDLIeIf4j~~dU|lsmuP;r(3G|gn)sT}*`Ie{1`H*kkBYZo{Da0SjiJl}@#nQ4HCTB1 z*ev>vS@?e*4;J6$pUL4-F`U>sXSMh%;F!^83$qK*nu*H!Spn#m2K?M`f4VidAc z964PLdw}u+G{J)IihQ#->zC5Cz&0Sm4}6}{*YPi3uh?S!^rTi>QJdLk4=~-7{QmA} z4usypjbj8c)}WgdJTLz({aR44rW)!b=(}?l55%NpA?+XY-4xE%MgFjYyi~y_UIw_H z5f;U*%QgQZ#-w8p;=|WtO{BNd)`}++rUNwaSKbG&Uq?iAq6rm37QfK3Hf8u1>9F_H zlYwaAtw6VV1n%)D_54O9xasz%W13G#^IPnDh4W)$^XK&(Ev6=yoqx86hIr{(YcPjqnS0dIglTK*jWdpr!eLkr;J&p5gns&Hb zc`F#s{4_L?{o>36d(v#65)*xDXY-LoHT7<3=vBza)TTL!wa1d^=By(Cz%w;b;g1@kCc95U9Rn zzI~K%GFGB(eMqj~a2Qcv3U@wx$6heU2BCF-EJyNxnruGA;cvtJbL!tlfVM=#lN{#) z4NK}~@~oVa?IvH+2w=%!tB7+bc0Ee*R-HnwFCL5!!f)jKj##!_aB*J>ygA}LGXF%f zm=XTk={<~2?$JeLLi3HD@^Wr|%hso?!~gVcGA7=`l1|sItgZ>L3yXP8Nc+#4J6iXJ zsWA!cj3s*FHLRd{5VSdvK@CW8t@5YDi$txkKc5|{c6a>2`X01E~3MgRA3_ws31vt+DENJiEr8BW+} zv%`C)s0`sD&%b}}b6{5l48Ko^Zh%fS(lKeqLBrgy2^mt-T+2y*@(<3}+>2{?xG5DM zl;?E3zf_IlZYqD41VTr(;C)6-CQ6#s=#KRpn;D{z{zg3BuOx4NyF|>LU?^S$VXN>- zdX?KJMwNO6QJuj&m!|{tYVcod>XJWAmk%Qd<1UH3e z3yX0ru`B%}3b)_}wFbrGL}5hZ($ThKeV%>Ausf!PTlF-bto&kBN>u&Fn+@jK8Q`Bi zh>v(+Z<>M%m*Z3Mea=a?vKn_$s@RqKUf<~$?;eKRnQ9HnZ0sFa!>-JBuk4G?m90Ps zmS#h0s9c7=;?ab+m&LOS*PfgHK)>ZZrKfM|tgJ*70C&1t$SWOFxaPeaQZiW4^Ka8M zTEJtc2DL{C(F|^j5%Iss5ZM?>WSS1XfMRl7_RwT)BF8rWuaxl8t_;SO<7o*N-Q3X} zfEytr(d6EQpers`Lna?0+fgJ!GyPDmUu?q7{{@3EzvX(I)H{W9kwO+fW++hAtP7$`Y@-OyKm|JCJij8#Te4JE&w3oa+S1`XXN4^!2|7Wsq?~-;?vr=a7N|`_E-FE zEPE&={pK8g?mQ4v2GXJ{W&?+FOUA$Vj_rBh=H_%mg{v8p6!%D*2z3>!G*rJqni7A8z;wiCOhVZt;3!|9xfM-^RWFyi{)#7W_zr{q67dT1+DxI{BvNk%ok zo@Dd!DU`@dQZ}=Lr0kY3d;f{0EX&*+^g&uWFP%PCZJ1PlQ@G**JQmp`#Wh3Tu>ZwN zsXigqr9eOo7g?vBcP8B|Z22-m{hIlvsc-6xW4$@6{Fs z=eX>H3uwH*eUQjtLAm1cgY83?^BG#+@(*~RibD}UXfAp4(F4PvNukrBruIW22l-~v zd>6Bg56qE?YpbrcT%KPP%7Xz%WWjA;2O_ zzy0!a)Wkby1BaVnMdzVNz(TRWN9GO2E%WjB_8W|TxL|G(fjY<^1qm;4#Ci9(1a7}F z$qz(1QUUpOICJ_7R52-pMh6<93VAyj89U9(pc}4&nT?H~c#cy@ECDB_5||$G_#1L` z`{>zqRgXjx2+a!sQehS<8!*+oyt-=ESJU)=Xv_l{H-662Zj_NQfAV`Kmg?J*xPjXB z6ga{9RaE#UMt=Upy$J%3zq4<&r))&V=vd268jsvXDONCeRcq6{4k%0v>&7}vVvY8G zrvWEdqe^V9rEqzoiG%Z|1Rx}OsCtJL^u5-b8f}V4!P8EjDSpd-3-D_i`C4;P4pR7p zt4KrKxV^f#xB5dO!e>_%~x1xshps8f^f6`A1 zTP$J76FV&k@?A=>+lptg7~$S$;Mrzq?RJ+=nzCZ3rZwAtv>S7GQWA2m?tIcvk>WT_{TrDw+JD;PtZ$m!g7EYLiyx-oe z=3)h5oijW@*_^?OEaK!N=h~;WDdL9rviT=0aeU0oy-&fDO_Ol-!vOWFDpK-4KFHR6 z#Z;%K5Gn9ablk@?hF=p6Y7>TYFT~+}PG80Xu(hE6>)zt_H-B~&Q+&dPbeu=0McUr} z$ukJY2TB!Y+&+Ngh*a8R=j(J!rBt=cGIHTVi}xyHn9Iy#=yQj4-)8NxnMl?pP*%%| zCnc?1o9QvN`z4`zQ^r)`jb>JMRUX5=4y=zpl*Uq|TGZ17gu7oSa4_ql=LyWZB&{%i zV0|rDaygdKrEc*zDj6o8^W_nDyQ$uDBgKFd0SXY#{ZTDJ6M9loK!q~=z7T=Hx?dzh zm_#@H2s=}R>?8pu?3l+Ru5X&tVo<_0$cK>>7y$n|x=*F`Dr3SzeP0ZZ z(@N7Pw6(s}73u7Bz4l9;AC5kvUueD~vDG4!vZ5c9r^O)KN zAn0{r2(q$0=p2>DdGg_mOv-IT13Ev9cFsJx*$*fFb%#aw)XnVQbO#S=zy~*MhwY)jvcFvf|jPcZ%$FHf|o0N5lk7(0qZrGNHD?@@na2O-F zV>$x}+&H0tgn%LGbn4O&Iek@S^><|WIsoyx?#{11JnqKlIOm{_w_bl+G$A9IrUsiWgU3vh@d+TIWa}S(L+8$>>$^$Frv*N4q^1ZC^ zTY}4;1P?jawj$Z$KYzu&lub|2mcQ*gAz%sf5FWbJik5d^cI>>!ocPMp->1T>6PXZWh<7+ z%lLTajSwXwY5XvA+tCL28YY&^W7y~kWI-vjbHMYf(i zQ{4-7L=Wk$pbzGoefNMPmn2F+7QS6!lAID!LXO=$+YD6Z#G#1{Aid<-D_a9`xXMx4QI$7Q$r6eMcVaGxt!(Uv8QJcVl(dBX#_m%**6G=*M4z9ptE3%c=4X~fj?BfrFRI7fQ zXC2rX^LVjAySbJh!Ogh|z`L{ky^lH73F*n(7a4ot@Gq$z?+T_d!*d!u0<6YO$dawkN;1(go^0Fo2ffdmob*hx#)5N$(+N_T9 zKm`A&y^7Y+Mr|QqKG?I>KlaGw^6!7jCLx>aKWTfTMZ36kpq6p9jgGvsELP!AB#BF!)?Z6 ziHwYt!-vz0%dgb$6zDmHY>2`K`Y2sLjrfoDlSGkoVWq18JP^@X@DqX4?%`N@)bL*)5)V`W5u-@Ws6>w8h~w@iDAk~=Y&Dj+al}|F=3<~6 zf5izR$#$rhj`sE5YMGAnZt0Qg$#72BOt&JVl(LXYk@G&`kEZussaRJS3pms3_^lua zk}O7D5EdQN=0z1Vsu`En&P$sVZ&Z~ zuik`VN|eO&Db7)6YtB{?Ouh_2NaXCku*)j)jev!p7~a3(Z>g5I~{f4I?|d7 zWt>u6pM}H+J{Mc+8R=B~J%i?J(msew+X@XuD>f-qNv@B;`t{?upw5a#2Q_3xRbIo3 zL&y+sPi#q++PvA&MX2dwTX%6o>s$A%O-J@s&I+TIKDcwY-Si#JpyMnyE+d;ImUVjf z7oV~-0eXpPrfEzl}FPi=k8FEdXH|ARpw5J_+V_9vTtP#b35y z-F`r>nXm_b8S!_)(Z4xgP0`q3MV8oLJ%FFZNS#<$E#k3D%SIzeG&J5gk%ZZ4tbBcc z{S3a+vP(i!LVda6u=R2hX;_g`RLg5w6VX;eBB2!JyhFMNhj+7P^L>PcTAzebQG`=E zIGl~XzW5!1sf_+_>yi_%0bITNZ4#FlEbvKZsM~aq;m+o@z*@iM(bJdOdH0yZ>(|HW z{O{iqMm~`4u4hZ^5zxr>g<)URP_!;*&2~`4QPBNIG!5y~4Y@KHkOxO0^{TyqSZ&ri zh+m`#w!eUO*k2Nl6L4vpAP&X!U^Wf}(}Kz%>@{ge!}^~(-@!m_;;lID43G(S zmMc7-3+4RkO_d4+Gx5f#R-6^Sgg?BWo+#}z_!hmUY6y}~Bb|gE?`~)Ncj*lF zxm~F{8QZkI#ynizt0&GOr3J(}{8!NjeJFxG+nTDl{j&V%&?{!Y}a4 z-k=?%dL%~3X|3!Ujizd0W49PgiW@dx&<&#sMhU;gwznSSmAL~oaagI^4iJ_vZf^ZZ zsR0fNiWz>Db3GTbD&9y4I5pbR11{945~N_e8*j5t?oZva8-QS^LzL=H(f5#6=K}I2 ztzfJQ5;F7qR&6kT+_XISl_s1wWe`W!56|(zm_*%I@9z`)h5E=Nkn#DVYOdSj>~#@xg1do>VbZ3I&YPiX=G zsF3stE0q~1#!aADQwS@(`{X?%sFXa~U?8wU)0t)5N)?%+FT3YI9uz<^C?oak4+>pK zta-`Z!I7VJ6sgs_`A%m877UL*aw2|-BgADd8Ie@6qVTI&um?2X=y#4@YlUDj zNdUPKY@qT<86Qy2H?f){XVWtPDqj4Mk2STiQn>SRX5NzXpVV`uOR2Mv(A9vXiL9gKK&|P}GAM=|0^Aas_|a1xvpUdfwD!d|-FEB;lV|Fpu7>qR}qU$cKyILbUUp>{m5#j-_t zX!@`9!3)7e?1)FmT>xHZZ1KO560#`|moyt<&P5o}n_P8n=y)8xj+z&~H6iw$M+fzA zd(4!_%^U~?;a1v`KQX)tRl2PipwR<5lp}Rh*S7BtkZ4Hwp`uPKg^p9sdqtj zL(-LK9GOj7v+8(m3c*Kv`eXHq{Pw%}K6nY2SLxk3=<2rn;toGa&HB?Xqy0yveNuMd z`0^}zC`rQ*sAA`mNlEUT`BV8wF?3=$Ofh2<1@J--CF9(bjP4w8-39tdO=lK6;Zhtr zc+$o-)Nbzq&C^Or!x( z8A*)EpHX`0UDyRat$#0i{`QqD`Zv;4ix4$&O_J3OxABRpnF~06X=-K{Wc;)(bbR^K zzl}s1h+jIw9~_r}u_}l4+IBC)hNh;9V~$%S)6F;~iUV=&{M4g>9+@bf!G?uf*(^w0 zhGN=>#};(&jw>mE;1q$5z-7^^DCpeZ+tMPPDy!4&pMTmERlA_#U~|M#0S#tZPD$qz z6BrvLt@%(Y1&05;su^M?G7)l&p|KS?6w&Etwkz7{N^7Ti>3scv6`hGc6aF8^UBx#_ zCCa&!tCF))WGh1CsN99g8Oa>EXH#TuIYx+8lB-C`S(|(A$z6`wm}_E(W7Ce`exJYL z^LTtd@AvC?uC}?z!xkmbYed%L7^70p18+^m_q(UM#nKW%-OT>n+Bb+l zSqH8|`QAur+(M-);uX>tGc|kis&JCVLCiFTcIM*wLY%(W#b3b1A(PkVD65)K756nZ zU!1QDD_T(#ojel4xaZ=|lnA2wdcIZqO_-UrL~QZFOjIuJ=a4CWL+<4QMr#Lb=G>r} za}UK&8?CNGz1K^f!ekRokg5?WhAa*EQLe@kU$}BRBle zl~PIZkT17oV7f;I@M%24qOn&T#%ZhjPw0jl$xH3&1x5sALWow&=#7V%$|iVNEQO5p z4LqBiwQ&839J^6njLC@)M&JB)*hQr1dF<4ckKyN~1foa7T)D+A&o$9&94Y+h*=~x@ z%Hks#N{-F*wd0&ON;QE|2u(KiE8yby>4YE5&N$D|BXF_KlYo55o*(+2bx2|I4LB~^ z?5FKhc*p7S1e)v6Uy3V~x&nX&>BuW0ARwK5fJL9vPRPjbRbE|Ra*&*Ts-Ylh8sI^X zr9a8Sjk^6c^+DjZt=6CSeiMAPb}$oR6K{YWK2Q-qOU-;B4YhktnZHXPgXvpBeN^)^5%}xrU_rdc%d33*q;Y20HZM&X0bm zJO(=|)FlC&4kyHGrYO&qQ%GkcSR^c`9UIE@a&8g&rXT?Mm70nBFOpIC4Ila78t!Lrq{E!Q#_v*6R__?`ZP-ZeUz8`VfE{dGtsw#QMg;-0?0H%LxEK6Nt`L@w4?%v%Y=A~fpKd# zF@^&oS2_Jc#&&4l{aSvq-Yq({;}!Vx^8NV;pkgF#kiD8YREuKq*yTFv_#>$uRW=pU zjs6ku^j~5Z2{|^MN+M$%cg{<&9V`Gw60eyyf>9JT0q{M?J44f}8|zzX2BOWQU#jjZ zB|5_0pjSU-kG*~F#e#VC+6^e^FkE`V45_yi3TkvcnDI|#e4*6e*=pr$npT26OV;; zGS?{NSCyn1Zh!e;`expBc6$a~E;o63zh|YEaX{ixwL5FU_#t}BhAE>7bSv29=Dj6t z#O$Y|?9BgL2aqJR{Z~TWnY*W5sv;Rr4=TSMHuwnM;ST5jsN-2%ddJWIu+8{Bk$6S^ z5_Y#~rQQcf)|MCnZ{8HVUtRBU*uDLrdr@Skvl<@YL9;w=DwlVJ#;CqnPrzc2NtsoP zH=GQacFI{CS`dc6i8?w`Z2B3h_r=R=Z7eD8Umwa?I^W0M(72{;AX9NroIOx$J-avr z3D}0M39HmE%>&R&Mc|d$V{B3QMxV$WQPtcb`ZMSJ7MmfF18xNsRAHPfp3b*p7&*Ro zMN}7QMXfURQxwV$TNL>GLRc?+i3~Smjo99t80Ffn=MMKZ?9VnWTd&dYhy66ayIFY) z+=%5P4WG-Q<=}k^1N;BAtI|${GL#rSkb4uTFedDTJp78JN;b}Xy?!$ z_8rsf9Kt?ghHm#EMGY=|eHL8EIYn*925V#!w_+K(KezLZrq>}Svl%M|e_ z+2yZ3ak4Z&d?KjQzauYB0|ef0?|ty<4moc5Tf|7N(zpN9SdDl8@N!qF90VGQ8|yzK zd5hPFE@AOHJZ|{*q-aV$)O3-j2}|31_uf75-w$4bQpzvzCbi4iMtC^7Cn=>Gy!^#G z4^aK8RPL=auT;#@St{gdl%cUWXl^4!VG*@5_VMXn?=@RJ$zl=xNH4wcovlDccc#*8 zb=#*nMKzMh(w=y?!DqN7uR^Wp8S7;63ZEIv+S6(ZO{IQ8DV^D}jwueTTtE$N;LufxV^OO+#+psO~ocX-5I93%G6mctSgcFPGgxBzwLYI5NM1w_~nX{A%- zQ~=hgA4ezp@&>B)N8%dXPMo`!EA+VX8YxrY?LyLm5k|R7Q;J&c%a8+He}}Y*d+7ot z3jm=ZNO5QRf+MK_3&U9h!ZqQu;(&A7wl}{Fe^n91bm|caHnK^A4akvWjmIw- zR>sehuo(GwESIH_SFPuRA`b^K7W5VJZ6cUi4e!X-WiK9hBCHFF|Gk=*bQOK?{Dr{p#W(XqZOk*8qrS>u z=a;5ZQ9DH_5r&de032c*a?-p7T6f`b9elxdonok5a6mu#RJd4)vgSlZ`Td=nHyxP6 z*_#KuQqrJ9kiH}ES)RHw@yeYEJ7g!A+;4LN%5mv9^=Z?Qv+d7V7Q-ABzB_zFrRR$XL;n*&xnB?%ty0QwqX8=6`=H97Add5 zgEhoA+cZXOo_Rr4E#}}EZGF>C2PRo{4Zu~+J1M_6 z+B|+8Jhpp248{tsGq3Y>pI)@V>; zn&kyfS7nZdJPeDd1v%9~SaTIr=2<`o!O@uM!(F0RBCM#=>0R=5Nm;rzvuj5^YidNF zR``BOU+00>{Eb!e!mcB5>#Gp68Od{|L5Z^aqVUT<8SabV_M>tJuJE)WP7dbDL1ONc zVrhMivCHag8PMlW$Tz(z4(CqBszunvuvkSD?%TVrM2XFYhbQI!`?&Yd(^WH7>d)!< z{nN-d#(qJd$V1mT9cFja#ZgNe&LIl$?+Nu#BM8v!;>SfU5iv=uhBI!-aZ>>^(A&U$ zHh&XKymV0>zYo?0R)&CSuY~j#cxv) zI9T@!Jw=tz?c=Szwvt53?o_uPjImq+t2~L48}ewuEXCV%0ZgRBE|^l}vZI2)d7pXt z9%rO;7gnwd%f3oGaOd1+fcc5Zrpv-tC#><20gn{Or+$3Vv9rF|j1_?Aeg#6WO!RUd z>+nUWHMda35L=2@S%G)_nl!mh|FWTrHisA%6RK}J9SMXYVkR`s?l1D*oumUChlgSr z87&u&&8+F6UA5d9`kmOKK4Fxd^77`nwmOcJN2~vKy6J}4bbl4Q!#8;XVdJMp1;!H= zlbbX&P^%=tQ4^8*7-?N+G<}NRJyp>=+Yxm8r}NQ1cdRf-kaajIMtE*W9u%mj1bZCV58=2k zE_ORNGYs`vC#>wgbSV_ZlOPO&UMj~%5e<1LsXu|*=|qfOymXIPRHu7kQn?H?J*Fo6 zmF2{h2I}8NlEo4;4THSQ}dFv3UkI?<)NqdlxK@_#9ti2PrKLi%2 zaO*zEQiWN>(O=fO{uF#=(YIAyJrwNVslH3hQFi<*pKE7?MU1TBV%)U$E=R=V#n_m; z$i7*Vo}QqVOJ&#Mqk0TY7cUxfzg6OyLa*}UQc+A{e2C*w$h}KiFY)>QB#VSZ0wrgG z;>i+3J!SO(9#C%Qsi1E0A@JdR1W^P17T2A|*;3Fq=H1s52*~M|OZ(}ydlZ}ZUZn!` z5F5&xsid-4*m*Dz*lieL8WJg{6>kIlYlr4|@DMluPQzK2;5~`H8=nWtH&5}3OYWSj zXc4BFp+z&`D-p&{s;a*Z=rnB`IFBnk*MjD0FDg4@aQrdWGAYjj9$1Xu#pNiawx%+) z72r+Tv>&Yk$i)z9x(hlQ#QY&iLNk$Yy8Sn(l3m!Q(sqC6`s=g>beQXeXvB+Hbrdoc zyhm8{^D5Oj=PN^d=DrcE*LJDq&uc=fKJI(oYW`r{fJ=>s2MR9uZlp^l4#0C(w0qF<3R$nCK;ldd{ zlP=_V)gQ@d$EF&IRls|+6<}&70V>5YYmGBL32tu#`!&IjD+D-&05g~7bGQ$KOJfDc zz8}HR6%D6Wr-G<6Uwokb@(9NkYE%+;wik0!TSQdQ#MhSg8)WcVvb-kZgMR+EvtTx1 z=rU{5g=y$Us(m=sX>%UkT1^6TY(_HB6u~&HRp5ma;R4gfg9}kWj_h{A;>E+bznO;% z#LOz0{rRc%?ug%?91W~E6kU59#om^aM_;y)&mEXhS=KEZn{TaP?0=ZA`9y2flXk#B zWqmjV&|1>$Z?#XbEEF{V#h&B~BzQm0J!{M5PC!fX(0X_6UZ^IDa#t}F;4Zx5N;GQ` z-sXCBVR*&*N}_rZ$^}e|GWszC51zdRwJF`z9yDVT=^BEni%HT(76@%nv`2lO>kn=a z$tBk=3=Xx|XfnSCEK?Q*b+x^=j#{i?E|>c6NQhvHwRZ`)%&WcK{l0~<6CZL_ zBDeE#$JH3kt2Tpk;HpLYj%ui78J$s@f|>wxB; zV!n?%v@;e4kNmEKwod3BDn)&KN^wls}WE98?}`ogG~W7%*AbR-Xt7jhfh z#SZhfOyVPYs*AqSg?BQvajV2uHQmw_{XMbau*^&<$fJ#GM&Gowk*KWJdT3@}`F$qY zcOShO9^A252-M?~mBO|gXFI1FPtUyP5C={U zr9)lL_vbJvs)8-94qU%-fy3#QN2&nm3n$?cc0y&!gBLDfXy(T+|FG1R`FXi%WAxnH z-aknn@`?cS^&nt4KM}uRBU7;Fgr;uyJwXAIKY9HzOt^lVi;7`_E{&aB;uZgUdwm>}*NAV4eKUxa}N8$*BzCE}DS3MX>>eMm>eeYEy}#QXlt zX#Y-;I-odap3l4-13llvCJ6FP44l!i>s?B~Xxth_72%pV(}+y!p$8nGsyIz>sXE`2 zsbL=P%ssO1GLXRL!nVO7BZ;|V{eENNehua4>#T#1Y}!^B29^U%9z1yvkl#LhMGTZa z&rz0ARdx~F6zstom)bLkc4{6DbXh85}FxVEdkLi z$&Z_E!$W6Nxa})i>;>^%qF}fFbfT6#5720~gTxR{yR|%7m?!hX+T4Sf1Kb1Lvzc>& zfKX6;q)Bgq!#E9#{s2!dhkM7NyedKEh~fb~Y;y2Jx5a?)h*+zb_a6hV*c)x`;Q1#w z3xJ56(Thc9qEygNA%C!{`z+OlzSo;v0G3r3-5A8zt)@26_A}r>sl1)8n1%x_X+x?CwjqDxeM_(>kwQ?t zckV}7=1c^~J^588R}Yp}4M4jApk6l1qYv;FWwW93p6V})%ixtad8WyhYqet~1Gze~ z-tyxnHlIp#r#^oN1g}D_%%=DS%RY)@-3r~NPw+$kWIO+!f&R0I?>bH;3d468s({1B zXr@3jzvZZlCd}va-txmQ#mS?*+%=J;8yQy+ODkHXNTM4f38%IZ)hKKzkGPv^6r~^`$$~7=Cv38mE@XnbOb-2psK<3!<4&L|O{_KdwXGc%4-3eqSPFI>e zbKSrNYy76<*wnj%8JhrK%_RWj$LnccB>%+M*IQ(rY37Dw&lvoZNQ}~|Fkps(^Ouy- zc0*+%G#^z<8yYAdf?f6s@t#^S=KAKrhoZQ5GEN}DC%iOuZX*XDXp}u@u0xsYxW_ouBxwM}`0H_=wyA| zE8)_i>OKbmw$;eho9to8`su9p#>P@i{m>v!HYrMx`by5{s2fgqV%IN2u``G2{;S#} z7(C_JHL#g4!TVKzH-;cqyTWYUbYJYD51;o&OW{neeF^8u{&=>3MOrA~?FdpJV zSYd`@e7yIF=r>t}q62JMgr{OifCEZ+OqL@U0qnPCM~vzAVAWSinbTGsoAj%8aAv*o zuWD3^SdZJGJp`)nD#ZmjSqj)I^?gr($f>AJ$#J))lJ(;mu}!}FFX04CDff;uyZT$@ z44yzaWcc(;REg2B-keS7+|){0hao1Ky6u~P!(lZL$EGcIp3i^I>#mUn%_C6l5a^P! z>!#Rsp#cEt6KG$x)xQV)s9bQ9Udl5Q!j2ysPa78L&HdLqdHuyUL@dr}NJnn_or0#u z)ho3h3FLS-gf8mRizhfvtzM0;@IyPk-^a6h9oP}I+0o=6~N{Rb6BX3y4 z5iV4cW^ZW|en}IQMT+TnetP+OC=>YD9ENf2e>0Cg{8J!oHPOl6dW}=^aM*Unss)1+rbRF+Sba7% zS^dsY{r8^f?G9m8-(u)oUlX_hU>wvBfuHDZcJ$scFzxx_sGe>&>$_MnNuJCsS&yi* z?S#{Ys<=ZKzX4zFL(&!$TFy;eGq<}lHtC1pKHZ{AsJ|Suh|q}G&Hj5`YQ6kg>-TLH z@Kyi8(;^duC=6+%3mPF4l)6`@ir!|39??Zz7I ztV%vhgYW=#7VO2Wemv>Gq}*g@;q;+w3>`V;kYxK;6FPKtq`3YYe^ONz(}&E_>Aq4d zi=*$Z4@FD3K~IDg#yC21E&p50#uK=4t=!6S^zF}6jtF|OY2C#@@z}oC8anXk#M0LC zd+<`)JID$k59QE^GI&PGf^LN=Mk)-?G zAp#plve>m9P|9#iZEcyjfDFB2Y_A!F^9a*j3Pm!I-(LKYNI0 A4*&oF literal 0 HcmV?d00001 diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/media/foreground.png b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/media/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/profile/backup_config.json b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 000000000..78f40ae7c --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/profile/main_pages.json b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 000000000..d703eb23e --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,12 @@ +{ + "src": [ + "pages/Index", + "drawing/pages/CanvasGetResult", + "drawing/pages/CanvasOperationState", + "drawing/pages/BasicEffect", + "drawing/pages/ComplexEffect", + "drawing/pages/ShapeDrawing", + "drawing/pages/PixelMapDrawing", + "drawing/pages/TextBlockDrawing" + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/dark/element/color.json b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/dark/element/color.json new file mode 100644 index 000000000..79b11c274 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/main/resources/dark/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#000000" + } + ] +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/mock/mock-config.json5 b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/mock/mock-config.json5 new file mode 100644 index 000000000..b9a78e201 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/mock/mock-config.json5 @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +{ +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/test/Ability.test.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 000000000..1ae8125f2 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,385 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { describe, it, expect } from '@ohos/hypium'; +import { Driver, ON } from '@ohos.UiTest'; +import Logger from '../utils/Logger'; +import { abilityDelegatorRegistry } from '@kit.TestKit'; +import { UIAbility, Want } from '@kit.AbilityKit'; + +const TAG = '[Sample_ArkTSGraphicsDraw]'; +const DELAY_SHORT = 400; +const DELAY_LONG = 1000; + +const delegator = abilityDelegatorRegistry.getAbilityDelegator(); +const bundleName = abilityDelegatorRegistry.getArguments().bundleName; + +function getString(resourceData: Resource): string { + let manage = delegator.getAppContext().resourceManager; + return manage.getStringSync(resourceData); +} + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + /** + * @tc.number StartAbility_001 + * @tc.name StartAbility_001 + * @tc.desc 启动Ability + */ + it('ArkTSGraphicsDraw_StartAbility_001',0, async (done: Function) => { + console.info('StartAbility_001 begin'); + //start tested ability + const want: Want = { + bundleName: bundleName, + abilityName: 'EntryAbility' + }; + await delegator.startAbility(want); + let driver = Driver.create(); + await driver.delayMs(DELAY_LONG); + //check top display ability + const ability: UIAbility = await delegator.getCurrentTopAbility(); + console.info('get top ability'); + expect(ability.context.abilityInfo.name).assertEqual('EntryAbility'); + done(); + console.info('StartAbility_001 end'); + }) + + /** + * @tc.number:CanvasGetResult_001 + * @tc.name:CanvasGetResult_001 + * @tc.desc:直接画布与离屏画布的获取与绘制结果测试 + */ + it('ArkTSGraphicsDraw_CanvasGetResult_001', 0, async (done: Function) => { + Logger.info(TAG, 'CanvasGetResult_001 begin'); + let driver = Driver.create(); + let canvasGetResultStr = getString($r('app.string.CanvasGetResult')); + // 断言“画布的获取与绘制结果的显示”页面导航组件是否存在于主页上 + await driver.assertComponentExist(ON.text(canvasGetResultStr)); + // 获取该导航组件 + let canvasButton = await driver.findComponent(ON.text(canvasGetResultStr)); + // 点击导航组件,跳转至“画布的获取与绘制结果的显示”页面 + await canvasButton.click(); + await driver.delayMs(DELAY_LONG); + + await driver.assertComponentExist(ON.text(getString($r('app.string.DirectCanvas')))); + await driver.assertComponentExist(ON.text(getString($r('app.string.OffScreenCanvas')))); + + // 返回主页 + await driver.pressBack(); + done(); + Logger.info(TAG, 'CanvasGetResult_001 end'); + }); + + /** + * @tc.number:CanvasOperationState_001 + * @tc.name:CanvasOperationState_001 + * @tc.desc:画布操作与状态操作结果测试 + */ + it('ArkTSGraphicsDraw_CanvasOperationState_001', 0, async (done: Function) => { + Logger.info(TAG, 'CanvasOperationState_001 begin'); + let driver = Driver.create(); + let canvasOperationStr = getString($r('app.string.CanvasOperationState')); + await driver.assertComponentExist(ON.text(canvasOperationStr)); + let canvasOperationButton = await driver.findComponent(ON.text(canvasOperationStr)); + await canvasOperationButton.click(); + await driver.delayMs(DELAY_SHORT); + + let clipOperationStr = getString($r('app.string.ClipOperation')); + await driver.assertComponentExist(ON.text(clipOperationStr)); + let clipOperationButton = await driver.findComponent(ON.text(clipOperationStr)); + await clipOperationButton.click(); + await driver.delayMs(DELAY_SHORT); + + let translationOperationStr = getString($r('app.string.TranslationOperation')); + await driver.assertComponentExist(ON.text(translationOperationStr)); + let translationOperationButton = await driver.findComponent(ON.text(translationOperationStr)); + await translationOperationButton.click(); + await driver.delayMs(DELAY_SHORT); + + let rotationOperationStr = getString($r('app.string.RotationOperation')); + await driver.assertComponentExist(ON.text(rotationOperationStr)); + let rotationOperationButton = await driver.findComponent(ON.text(rotationOperationStr)); + await rotationOperationButton.click(); + await driver.delayMs(DELAY_SHORT); + + let scaleOperationStr = getString($r('app.string.ScaleOperation')); + await driver.assertComponentExist(ON.text(scaleOperationStr)); + let scaleOperationButton = await driver.findComponent(ON.text(scaleOperationStr)); + await scaleOperationButton.click(); + await driver.delayMs(DELAY_SHORT); + + let stateOperationStr = getString($r('app.string.StateOperation')); + await driver.assertComponentExist(ON.text(stateOperationStr)); + let stateOperationButton = await driver.findComponent(ON.text(stateOperationStr)); + await stateOperationButton.click(); + await driver.delayMs(DELAY_SHORT); + + await driver.pressBack(); + done(); + Logger.info(TAG, 'CanvasOperationState_001 end'); + }); + + /** + * @tc.number:BasicEffect_001 + * @tc.name:BasicEffect_001 + * @tc.desc:基础绘制效果结果测试 + */ + it('ArkTSGraphicsDraw_BasicEffect_001', 0, async (done: Function) => { + Logger.info(TAG, 'BasicEffect_001 begin'); + let driver = Driver.create(); + let basicEffectStr = getString($r('app.string.BasicEffect')); + await driver.assertComponentExist(ON.text(basicEffectStr)); + let basicEffectButton = await driver.findComponent(ON.text(basicEffectStr)); + await basicEffectButton.click(); + await driver.delayMs(DELAY_SHORT); + + let fillingStr = getString($r('app.string.Filling')); + await driver.assertComponentExist(ON.text(fillingStr)); + let fillingButton = await driver.findComponent(ON.text(fillingStr)); + await fillingButton.click(); + await driver.delayMs(DELAY_SHORT); + + let strokeStr = getString($r('app.string.Stroke')); + await driver.assertComponentExist(ON.text(strokeStr)); + let strokeButton = await driver.findComponent(ON.text(strokeStr)); + await strokeButton.click(); + await driver.delayMs(DELAY_SHORT); + + await driver.pressBack(); + done(); + Logger.info(TAG, 'BasicEffect_001 end'); + }); + + /** + * @tc.number:ComplexEffect_001 + * @tc.name:ComplexEffect_001 + * @tc.desc:复杂绘制效果结果测试 + */ + it('ArkTSGraphicsDraw_ComplexEffect_001', 0, async (done: Function) => { + Logger.info(TAG, 'ComplexEffect_001 begin'); + let driver = Driver.create(); + let complexEffectStr = getString($r('app.string.ComplexEffect')); + await driver.assertComponentExist(ON.text(complexEffectStr)); + let complexEffectButton = await driver.findComponent(ON.text(complexEffectStr)); + await complexEffectButton.click(); + await driver.delayMs(DELAY_SHORT); + + let mixedModeStr = getString($r('app.string.MixedMode')); + await driver.assertComponentExist(ON.text(mixedModeStr)); + let mixedModeButton = await driver.findComponent(ON.text(mixedModeStr)); + await mixedModeButton.click(); + await driver.delayMs(DELAY_SHORT); + + let pathEffectStr = getString($r('app.string.PathEffect')); + await driver.assertComponentExist(ON.text(pathEffectStr)); + let pathEffectButton = await driver.findComponent(ON.text(pathEffectStr)); + await pathEffectButton.click(); + await driver.delayMs(DELAY_SHORT); + + let linearGradientStr = getString($r('app.string.LinearGradient')); + await driver.assertComponentExist(ON.text(linearGradientStr)); + let linearGradientButton = await driver.findComponent(ON.text(linearGradientStr)); + await linearGradientButton.click(); + await driver.delayMs(DELAY_SHORT); + + let pathGradientStr = getString($r('app.string.PathGradient')); + await driver.assertComponentExist(ON.text(pathGradientStr)); + let pathGradientButton = await driver.findComponent(ON.text(pathGradientStr)); + await pathGradientButton.click(); + await driver.delayMs(DELAY_SHORT); + + let sectorGradientStr = getString($r('app.string.SectorGradient')); + await driver.assertComponentExist(ON.text(sectorGradientStr)); + let sectorGradientButton = await driver.findComponent(ON.text(sectorGradientStr)); + await sectorGradientButton.click(); + await driver.delayMs(DELAY_SHORT); + + let colorFilterStr = getString($r('app.string.ColorFilter')); + await driver.assertComponentExist(ON.text(colorFilterStr)); + let colorFilterButton = await driver.findComponent(ON.text(colorFilterStr)); + await colorFilterButton.click(); + await driver.delayMs(DELAY_SHORT); + + let imageFilterStr = getString($r('app.string.ImageFilter')); + await driver.assertComponentExist(ON.text(imageFilterStr)); + let imageFilterButton = await driver.findComponent(ON.text(imageFilterStr)); + await imageFilterButton.click(); + await driver.delayMs(DELAY_SHORT); + + let maskFilterStr = getString($r('app.string.MaskFilter')); + await driver.assertComponentExist(ON.text(maskFilterStr)); + let maskFilterButton = await driver.findComponent(ON.text(maskFilterStr)); + await maskFilterButton.click(); + await driver.delayMs(DELAY_SHORT); + + await driver.pressBack(); + done(); + Logger.info(TAG, 'ComplexEffect_001 end'); + }); + + /** + * @tc.number:ShapeDrawing_001 + * @tc.name:ShapeDrawing_001 + * @tc.desc:几何形状绘制结果测试 + */ + it('ArkTSGraphicsDraw_ShapeDrawing_001', 0, async (done: Function) => { + Logger.info(TAG, 'ShapeDrawing_001 begin'); + let driver = Driver.create(); + let shapeDrawingStr = getString($r('app.string.Shape_Drawing')); + await driver.assertComponentExist(ON.text(shapeDrawingStr)); + let shapeDrawingButton = await driver.findComponent(ON.text(shapeDrawingStr)); + await shapeDrawingButton.click(); + await driver.delayMs(DELAY_SHORT); + + let pointStr = getString($r('app.string.Point')); + await driver.assertComponentExist(ON.text(pointStr)); + let pointButton = await driver.findComponent(ON.text(pointStr)); + await pointButton.click(); + await driver.delayMs(DELAY_SHORT); + + let arcStr = getString($r('app.string.Arc')); + await driver.assertComponentExist(ON.text(arcStr)); + let arcButton = await driver.findComponent(ON.text(arcStr)); + await arcButton.click(); + await driver.delayMs(DELAY_SHORT); + + let circleStr = getString($r('app.string.Circle')); + await driver.assertComponentExist(ON.text(circleStr)); + let circleButton = await driver.findComponent(ON.text(circleStr)); + await circleButton.click(); + await driver.delayMs(DELAY_SHORT); + + let pathStr = getString($r('app.string.Path')); + await driver.assertComponentExist(ON.text(pathStr)); + let pathButton = await driver.findComponent(ON.text(pathStr)); + await pathButton.click(); + await driver.delayMs(DELAY_SHORT); + + let regionStr = getString($r('app.string.Region')); + await driver.assertComponentExist(ON.text(regionStr)); + let regionButton = await driver.findComponent(ON.text(regionStr)); + await regionButton.click(); + await driver.delayMs(DELAY_SHORT); + + let rectStr = getString($r('app.string.Rect')); + await driver.assertComponentExist(ON.text(rectStr)); + let rectButton = await driver.findComponent(ON.text(rectStr)); + await rectButton.click(); + await driver.delayMs(DELAY_SHORT); + + let roundRectStr = getString($r('app.string.RoundRect')); + await driver.assertComponentExist(ON.text(roundRectStr)); + let roundRectButton = await driver.findComponent(ON.text(roundRectStr)); + await roundRectButton.click(); + await driver.delayMs(DELAY_SHORT); + + await driver.pressBack(); + done(); + Logger.info(TAG, 'ShapeDrawing_001 end'); + }); + + /** + * @tc.number:PixelMapDrawing_001 + * @tc.name:PixelMapDrawing_001 + * @tc.desc:图片绘制结果测试 + */ + it('ArkTSGraphicsDraw_PixelMapDrawing_001', 0, async (done: Function) => { + Logger.info(TAG, 'PixelMapDrawing_001 begin'); + let driver = Driver.create(); + let pixelMapDrawingStr = getString($r('app.string.PixelMap_Drawing')); + await driver.assertComponentExist(ON.text(pixelMapDrawingStr)); + let pixelMapDrawingButton = await driver.findComponent(ON.text(pixelMapDrawingStr)); + await pixelMapDrawingButton.click(); + await driver.delayMs(DELAY_SHORT); + + let pixelMapStr = getString($r('app.string.PixelMap')); + await driver.assertComponentExist(ON.text(pixelMapStr)); + let pixelMapButton = await driver.findComponent(ON.text(pixelMapStr)); + await pixelMapButton.click(); + await driver.delayMs(DELAY_SHORT); + + let editMiddlePixelMapStr = getString($r('app.string.EditMiddlePixel')); + await driver.assertComponentExist(ON.text(editMiddlePixelMapStr)); + let editMiddlePixelMapButton = await driver.findComponent(ON.text(editMiddlePixelMapStr)); + await editMiddlePixelMapButton.click(); + await driver.delayMs(DELAY_SHORT); + + await driver.pressBack(); + done(); + Logger.info(TAG, 'PixelMapDrawing_001 end'); + }); + + /** + * @tc.number:TextBlockDrawing_001 + * @tc.name:TextBlockDrawing_001 + * @tc.desc:字块绘制结果测试 + */ + it('ArkTSGraphicsDraw_TextBlockDrawing_001', 0, async (done: Function) => { + Logger.info(TAG, 'TextBlockDrawing_001 begin'); + let driver = Driver.create(); + let textBlockDrawingStr = getString($r('app.string.TextBlock_Drawing')); + await driver.assertComponentExist(ON.text(textBlockDrawingStr)); + let textBlockDrawingButton = await driver.findComponent(ON.text(textBlockDrawingStr)); + await textBlockDrawingButton.click(); + await driver.delayMs(DELAY_SHORT); + + let baseTextStr = getString($r('app.string.BaseText')); + await driver.assertComponentExist(ON.text(baseTextStr)); + let baseTextButton = await driver.findComponent(ON.text(baseTextStr)); + await baseTextButton.click(); + await driver.delayMs(DELAY_SHORT); + + let strokeTextStr = getString($r('app.string.StrokeText')); + await driver.assertComponentExist(ON.text(strokeTextStr)); + let strokeTextButton = await driver.findComponent(ON.text(strokeTextStr)); + await strokeTextButton.click(); + await driver.delayMs(DELAY_SHORT); + + let gradientTextStr = getString($r('app.string.GradientText')); + await driver.assertComponentExist(ON.text(gradientTextStr)); + let gradientTextButton = await driver.findComponent(ON.text(gradientTextStr)); + await gradientTextButton.click(); + await driver.delayMs(DELAY_SHORT); + + let themeTextStr = getString($r('app.string.ThemeText')); + await driver.assertComponentExist(ON.text(themeTextStr)); + let themeTextButton = await driver.findComponent(ON.text(themeTextStr)); + await themeTextButton.click(); + await driver.delayMs(DELAY_SHORT); + + let singleTextStr = getString($r('app.string.SingleText')); + await driver.assertComponentExist(ON.text(singleTextStr)); + let singleTextButton = await driver.findComponent(ON.text(singleTextStr)); + await singleTextButton.click(); + await driver.delayMs(DELAY_SHORT); + + let featureTextStr = getString($r('app.string.FeatureText')); + await driver.assertComponentExist(ON.text(featureTextStr)); + let featureTextButton = await driver.findComponent(ON.text(featureTextStr)); + await featureTextButton.click(); + await driver.delayMs(DELAY_SHORT); + + let chineseStrokeTextStr = getString($r('app.string.ChineseStrokeText')); + await driver.assertComponentExist(ON.text(chineseStrokeTextStr)); + let chineseStrokeTextButton = await driver.findComponent(ON.text(chineseStrokeTextStr)); + await chineseStrokeTextButton.click(); + await driver.delayMs(DELAY_SHORT); + + await driver.pressBack(); + done(); + Logger.info(TAG, 'TextBlockDrawing_001 end'); + }); + }) +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/test/List.test.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 000000000..1eac52fce --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import abilityTest from './Ability.test'; + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/utils/Logger.ets b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/utils/Logger.ets new file mode 100644 index 000000000..5320999da --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/ets/utils/Logger.ets @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import hilog from '@ohos.hilog'; + +class Logger { + private domain: number = 0xF811; + private prefix: string = ''; + private format: string = '%{public}s, %{public}s'; + + constructor(prefix: string) { + this.prefix = prefix; + this.domain = 0xF811; + } + + debug(...args: string[]): void { + hilog.debug(this.domain, this.prefix, this.format, args); + } + + info(...args: string[]): void { + hilog.info(this.domain, this.prefix, this.format, args); + } + + warn(...args: string[]): void { + hilog.warn(this.domain, this.prefix, this.format, args); + } + + error(...args: string[]): void { + hilog.error(this.domain, this.prefix, this.format, args); + } +} + +export default new Logger('[Sample_ArkTSGraphicsDraw]'); \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/module.json5 b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/module.json5 new file mode 100644 index 000000000..c3fd9dda3 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/entry/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/hvigor/hvigor-config.json5 b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/hvigor/hvigor-config.json5 new file mode 100644 index 000000000..7ae8c2ef3 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/hvigor/hvigor-config.json5 @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +{ + "modelVersion": "6.0.0", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/hvigorfile.ts b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/hvigorfile.ts new file mode 100644 index 000000000..f3cb9f1a8 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/hvigorfile.ts @@ -0,0 +1,6 @@ +import { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/oh-package-lock.json5 b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/oh-package-lock.json5 new file mode 100644 index 000000000..5228468e4 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/oh-package-lock.json5 @@ -0,0 +1,28 @@ +{ + "meta": { + "stableOrder": true, + "enableUnifiedLockfile": false + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@ohos/hamock@1.0.0": "@ohos/hamock@1.0.0", + "@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19" + }, + "packages": { + "@ohos/hamock@1.0.0": { + "name": "@ohos/hamock", + "version": "1.0.0", + "integrity": "sha512-K6lDPYc6VkKe6ZBNQa9aoG+ZZMiwqfcR/7yAVFSUGIuOAhPvCJAo9+t1fZnpe0dBRBPxj2bxPPbKh69VuyAtDg==", + "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hamock/-/hamock-1.0.0.har", + "registryType": "ohpm" + }, + "@ohos/hypium@1.0.19": { + "name": "@ohos/hypium", + "version": "1.0.19", + "integrity": "sha512-cEjDgLFCm3cWZDeRXk7agBUkPqjWxUo6AQeiu0gEkb3J8ESqlduQLSIXeo3cCsm8U/asL7iKjF85ZyOuufAGSQ==", + "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.19.har", + "registryType": "ohpm" + } + } +} \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/oh-package.json5 b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/oh-package.json5 new file mode 100644 index 000000000..55dde11e8 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/oh-package.json5 @@ -0,0 +1,10 @@ +{ + "modelVersion": "6.0.0", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/ohosTest.md b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/ohosTest.md new file mode 100644 index 000000000..9e66368b2 --- /dev/null +++ b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/ohosTest.md @@ -0,0 +1,14 @@ +# ArkTSGraphicDraw测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动 | 测试结果 | +| ---------------------- | ------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------ | -------- | -------- | +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | 是 | Pass | +| 画布获取功能 | 进入“画布的获取与绘制结果的显示”页面 | | 页面显示“获取直接绘图结果”与“获取离屏画布绘图结果” | 是 | Pass | +| 画布操作及状态处理功能 | 进入“画布操作及状态处理”界面 | 依次点击裁剪操作、平移操作、旋转操作、缩放操作、画布状态操作五个按钮 | 在每个按钮点击后,绘制出对应的操作结果图案 | 是 | Pass | +| 基础绘制效果功能 | 进入“基础绘制效果”界面 | 依次点击填充效果、描边效果两个按钮 | 页面显示填充效果图案、描边效果图案 | 是 | Pass | +| 复杂绘制效果功能 | 进入“复杂绘制效果”界面 | 依次点击混合模式、路径效果、线性渐变、径向渐变、扇形渐变、颜色滤波器、图像滤波器、蒙版滤波器八个按钮 | 在每个按钮点击后,绘制出对应的绘制效果图案 | 是 | Pass | +| 几何图形绘制功能 | 进入“几何图形绘制”界面 | 依次点击点、圆弧、圆、路径、区域、矩形、圆角矩形七个按钮 | 在每个按钮点击后,绘制出对应的图案 | 是 | Pass | +| 图片绘制功能 | 进入“图片绘制”界面 | 依次点击绘制图片、编辑中间像素两个按钮 | 先绘制出一幅矩形像素图,而后像素图中间的像素变为黑白色 | 是 | Pass | +| 字块绘制功能 | 进入“字块绘制”界面 | 依次点击基本文字、文字描边、中文文字描边、文字渐变、主题文字、单字、特征字体七个按钮 | 依次绘制出基本文字图案、英文描边文字图案、中文描边文字图案、渐变文字图案、主题文字图案、单字图案和特征字体图案 | 是 | Pass | \ No newline at end of file diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/canvas.jpeg b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/canvas.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e84db1b598db79ea066c5893351bbff812ca7e6d GIT binary patch literal 30747 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 MQt(&SgW-n$A5R$MX8-^I literal 0 HcmV?d00001 diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/chinese_stroke.jpeg b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/chinese_stroke.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1cd3fc8dc9945a23a5466538e7e00adc088ab848 GIT binary patch literal 111551 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%0A%$z-sd&`~Db;qUI7H~6rss61)^0;L!S9yH@f20? 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 y^G-uB> literal 0 HcmV?d00001 diff --git a/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/effect.jpeg b/ArkGraphics2D/Drawing/ArkTSGraphicsDraw/screenshot/effect.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b05e482b1c4ed64de381892460cd1ef5dd83612d GIT binary patch literal 122999 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