diff --git a/README.md b/README.md index 8b65cfb..1450031 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ - 推荐使用ImageKnifeComponent组件配合ImageKnifeOption参数来实现功能。 - 支持用户自定义配置实现能力参考ImageKnifeComponent组件中对于入参ImageKnifeOption的处理。 - + ## 下载安装 @@ -25,24 +25,21 @@ OpenHarmony npm环境配置等更多内容,参考安装教程 [如何安装Ope ## 使用说明 -1.首先初始化全局ImageKnife实例,在app.ets中调用ImageKnife.with()进行初始化。 +1.首先初始化全局ImageKnife实例,在AbilityStage.ts中调用ImageKnife.with(this.context)进行初始化 ```typescript +import AbilityStage from "@ohos.application.AbilityStage" import {ImageKnife} from '@ohos/imageknife' -export default { - data: { - imageKnife: {} // ImageKnife全局占位符 - }, - onCreate() { - this.data.imageKnife = ImageKnife.with();// ImageKnife占位符全局初始化赋值 - } + +export default class MyAbilityStage extends AbilityStage { + onCreate() { + globalThis.ImageKnife = ImageKnife.with(this.context); + } } ``` 2.参考[推荐使用](###'推荐使用')或[自定义实现](###'自定义实现') - - #### 推荐使用: 使用ImageKnifeOption作为入参,配合自定义组件ImageKnifeComponent使用。 @@ -82,7 +79,7 @@ struct Index { ```typescript export default class PixelMapPack{ - pixelMap:PixelMap; + pixelMap:PixelMap; } ``` @@ -113,7 +110,7 @@ Image(this.imageKnifePixelMapPack.pixelMap) ```typescript //配置参数 let requestOptin = new RequestOption(); - //加载本地图片 + //加载本地图片 requestOptin.load($r('app.media.jpgSample')) .addListener((err,data) => { //加载成功/失败回调监听 @@ -127,24 +124,24 @@ let requestOptin = new RequestOption(); .placeholder( $r('app.media.icon_loading'), (data)=>{ // 占位图回调监听 }) - .errorholder( $r('app.media.icon_failed'), (data)=>{ + .errorholder( $r('app.media.icon_failed'), (data)=>{ // 失败占位图回调监听 }) .thumbnail(0.3, (data) => { // 缩略图加载成功回调 }) - // 一定要把控件大小传给RequestOption,图片变换必须 + // 一定要把控件大小传给RequestOption,图片变换必须 .setImageViewSize({width:200, height:200}) - // 设置缓存策略 - .diskCacheStrategy(new AUTOMATIC()) - .addProgressListener((percentValue: string) => { + // 设置缓存策略 + .diskCacheStrategy(new AUTOMATIC()) + .addProgressListener((percentValue: string) => { // 图片网络加载进度条百分比回调 }) - .addRetryListener((error: any) => { - // 加载失败重试监听 图片加载失败时优先展示重试图层,点击重试图层,会重新进行一次加载流程 + .addRetryListener((error: any) => { + // 加载失败重试监听 图片加载失败时优先展示重试图层,点击重试图层,会重新进行一次加载流程 }) - // 左上圆角10pixel像素点 - .roundedCorners({top:10}) + // 左上圆角10pixel像素点 + .roundedCorners({top:10}) // 启动加载流程,执行结果将会返回到上面的回调接口中 ImageKnife.call(requestOptin); ``` @@ -212,10 +209,12 @@ let requestOptin = new RequestOption(); | request.roundedCorners() | RoundedCornersTransformation | 圆角剪裁 | | request.sepiaFilter() | SepiaFilterTransformation | 乌墨色滤波器 | | request.sketchFilter() | SketchFilterTransformation | 素描滤波器 | +| request.mask() | MaskTransformation | 遮罩 | +| request.swirlFilter() | SwirlFilterTransformation | 扭曲滤波器 | ## 兼容性 -支持 OpenHarmony API version 8 及以上版本。 +支持 OpenHarmony API version 9 及以上版本。 ## 目录结构 @@ -223,69 +222,71 @@ let requestOptin = new RequestOption(); /imageknife/src/ - main/ets/components - cache # 缓存相关内容 - - diskstrategy # 缓存策略 - - key # 缓存key生成策略 - - Base64.ets # Base64算法 - - CustomMap.ets # 自定义Map封装 - - DiskCacheEntry.ets# 磁盘缓存entry - - DiskLruCache.ets # 磁盘LRU缓存策略 - - FileReader.ets # 文件读取相关 - - FileUtils.ets # 文件工具类 - - LruCache.ets # 内存LRU缓存策略 - - Md5.ets # MD5算法 - + - diskstrategy # 缓存策略 + - key # 缓存key生成策略 + - Base64.ets # Base64算法 + - CustomMap.ets # 自定义Map封装 + - DiskCacheEntry.ets# 磁盘缓存entry + - DiskLruCache.ets # 磁盘LRU缓存策略 + - FileReader.ets # 文件读取相关 + - FileUtils.ets # 文件工具类 + - LruCache.ets # 内存LRU缓存策略 + - Md5.ets # MD5算法 + - imageknife # imageknife主要内容 - - compress # 压缩相关 - - constants # 常量相关 - - entry # 部分数据结构 - - holder # 占位图相关解析 - - interface # 接口相关 - - networkmanage # 网络相关 - - pngj # pngj相关 - - requestmanage # imageknife请求相关 - - resourcemanage # 本地资源解析相关 - - transform # 图片变换相关 - - utils # 工具类相关 - - ImageKnife.ets # imageknife门面,app持久化类 - - ImageKnifeData.ets # 数据封装 - - ImageKnifeComponent.ets # 自定义控件封装 - - ImageKnifeOption.ets # 用户传参数封装 - - PixelMapPack.ets # PixelMap封装 - - RequestOption.ets # 用户设置参数封装 - + - compress # 压缩相关 + - constants # 常量相关 + - entry # 部分数据结构 + - holder # 占位图相关解析 + - interface # 接口相关 + - networkmanage # 网络相关 + - pngj # pngj相关 + - requestmanage # imageknife请求相关 + - resourcemanage # 本地资源解析相关 + - transform # 图片变换相关 + - utils # 工具类相关 + - ImageKnife.ets # imageknife门面,app持久化类 + - ImageKnifeData.ets # 数据封装 + - ImageKnifeComponent.ets # 自定义控件封装 + - ImageKnifeOption.ets # 用户传参数封装 + - PixelMapPack.ets # PixelMap封装 + - RequestOption.ets # 用户设置参数封装 + /entry/src/ -- main/ets/MainAbility +- main/ets/MainAbility - pages # 测试page页面列表 - - basicTestFeatureAbilityPage.ets # 测试元能力 - - basicTestFileIOPage.ets # 测试fileio - - basicTestMediaImage.ets # 测试媒体image - - basicTestResourceManagerPage.ets # 测试本地资源解析 - - compressPage.ets # 压缩页面 - - frescoImageTestCasePage.ets # 测试属性动画组件切换 - - frescoLayerTestCasePage.ets # 测试ImageKnifeComponent组件切换配合属性动画 - - frescoRetryTestCasePage.ets # 测试ImageKnifeComponent加载失败重试 - - index.ets # 测试页面入口 - - indexFresco.ets # 二级测试页面入口 - - loadNetworkTestCasePage.ets # 网络加载测试 - - loadResourceTestCasePage.ets # 本地加载测试 - - showErrorholderTestCasePage.ets # 加载失败占位图测试 - - storageTestDiskLruCache.ets # 磁盘缓存测试 - - storageTestLruCache.ets # 内存缓存测试 - - testAllCacheInfoPage.ets # 所有缓存信息获取测试 - - testAllTypeImageKnifeComponentPage.ets # 所有类型图片加载测试 - - testAllTypeNativeImagePage.ets # 所有类型本地图片加载测试 - - testGifDontAnimatePage.ets # gif加载静态图片测试 - - testImageKnifeOptionChangedPage.ets # ImageKnifeOption数据切换测试 - - testImageKnifeOptionChangedPage2.ets # ImageKnifeOption数据切换测试 - - testMultiThreadWorkerPage2.ets # 多线程测试 - - testPlaceholderPage.ets # 加载占位图测试 - - testPreloadPage.ets # 预加载测试 - - testResourceManagerPage.ets # 解析本地资源测试 - - transformPixelMapPage.ets # 所有类型变换测试 - - transformTestCasePage.ets # 所有类型变换配合ImageKnifeComponent测试 - + - basicTestFeatureAbilityPage.ets # 测试元能力 + - basicTestFileIOPage.ets # 测试fileio + - basicTestMediaImage.ets # 测试媒体image + - basicTestResourceManagerPage.ets # 测试本地资源解析 + - compressPage.ets # 压缩页面 + - cropImagePage.ets # 裁剪页面 + - cropImagePage2.ets # 手势裁剪页面 + - frescoImageTestCasePage.ets # 测试属性动画组件切换 + - frescoLayerTestCasePage.ets # 测试ImageKnifeComponent组件切换配合属性动画 + - frescoRetryTestCasePage.ets # 测试ImageKnifeComponent加载失败重试 + - index.ets # 测试页面入口 + - indexFresco.ets # 二级测试页面入口 + - loadNetworkTestCasePage.ets # 网络加载测试 + - loadResourceTestCasePage.ets # 本地加载测试 + - showErrorholderTestCasePage.ets # 加载失败占位图测试 + - storageTestDiskLruCache.ets # 磁盘缓存测试 + - storageTestLruCache.ets # 内存缓存测试 + - testAllCacheInfoPage.ets # 所有缓存信息获取测试 + - testAllTypeImageKnifeComponentPage.ets # 所有类型图片加载测试 + - testAllTypeNativeImagePage.ets # 所有类型本地图片加载测试 + - testGifDontAnimatePage.ets # gif加载静态图片测试 + - testImageKnifeOptionChangedPage.ets # ImageKnifeOption数据切换测试 + - testImageKnifeOptionChangedPage2.ets # ImageKnifeOption数据切换测试 + - testMultiThreadWorkerPage2.ets # 多线程测试 + - testPlaceholderPage.ets # 加载占位图测试 + - testPreloadPage.ets # 预加载测试 + - testResourceManagerPage.ets # 解析本地资源测试 + - transformPixelMapPage.ets # 所有类型变换测试 + - transformTestCasePage.ets # 所有类型变换配合ImageKnifeComponent测试 + - workers # 测试worker多线程 - - worker1.js # worker多线程测试 + - worker1.js # worker多线程测试 ``` ## 贡献代码 diff --git a/build-profile.json5 b/build-profile.json5 index d787b0e..1021077 100644 --- a/build-profile.json5 +++ b/build-profile.json5 @@ -1,21 +1,7 @@ { "app": { - "signingConfigs": [ - { - "name": "default", - "material": { - "certpath": "C:\\Users\\zwx1045834\\.ohos\\config\\openharmony\\auto_ohos.cer", - "storePassword": "000000184CD86AF7B78D3E3B6C36B9221705137AC28BD8A341A757477E5DC27D95E6A0DFD5EB51AE", - "keyAlias": "debugKey", - "keyPassword": "00000018DAB1AB9C9DF6E7C4D35BE8EAF4323EFA49131AB39C65BA5C44DE6D3879C6B31AA70D1E14", - "profile": "C:\\Users\\zwx1045834\\.ohos\\config\\openharmony\\auto_ohos_default_com.example.imageknifegiteepro.p7b", - "signAlg": "SHA256withECDSA", - "storeFile": "C:\\Users\\zwx1045834\\.ohos\\config\\openharmony\\auto_ohos.p12" - } - } - ], - "compileSdkVersion": 8, - "compatibleSdkVersion": 8, + "compileSdkVersion": 9, + "compatibleSdkVersion": 9, "products": [ { "name": "default", @@ -39,6 +25,10 @@ { "name": "imageknife", "srcPath": "./imageknife" + }, + { + "name": "disklrucache", + "srcPath": "./disklrucache" } ] } \ No newline at end of file diff --git a/hvigorfile.js b/hvigorfile.js index cff9f0d..5f2735e 100644 --- a/hvigorfile.js +++ b/hvigorfile.js @@ -1,2 +1,2 @@ // Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. -module.exports = require('@ohos/hvigor-ohos-plugin').legacyAppTasks \ No newline at end of file +module.exports = require('@ohos/hvigor-ohos-plugin').appTasks \ No newline at end of file diff --git a/package.json b/package.json index 35bc6d0..376389e 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,19 @@ { - "license": "ISC", - "devDependencies": {}, - "name": "imageknifegiteepro", - "ohos": { - "org": "huawei", - "directoryLevel": "project", - "buildTool": "hvigor" + "license":"ISC", + "devDependencies":{}, + "name":"imageknife", + "ohos":{ + "org":"huawei", + "directoryLevel":"project", + "buildTool":"hvigor" }, - "description": "example description", - "repository": {}, - "version": "1.0.0", - "dependencies": { - "@ohos/hvigor-ohos-plugin": "1.0.6", - "hypium": "^1.0.0", - "@ohos/hvigor": "1.0.6" + "description":"example description", + "repository":{}, + "version":"1.0.0", + "dependencies":{ + "@ohos/hypium":"1.0.1", + "@ohos/hvigor-ohos-plugin":"1.1.6", + "hypium":"^1.0.0", + "@ohos/hvigor":"1.1.6" } -} +} \ No newline at end of file