1.分离出3rd_party 用来存放pako, jsbinaryschme, spark-md5三方库源码

Signed-off-by: zhoulisheng1 <zhoulisheng1@huawei.com>
This commit is contained in:
zhoulisheng1 2023-04-07 11:23:42 +08:00
parent 29067035bc
commit 72edea3c7e
27 changed files with 23 additions and 19 deletions

View File

@ -11,6 +11,7 @@
<filteritem type="filename" name="NOTICE" desc="NOTICE文件不添加版权头"/> <filteritem type="filename" name="NOTICE" desc="NOTICE文件不添加版权头"/>
<filteritem type="filename" name="hvigorw.bat" desc="hvigorw配置文件DevEco Studio自动生成不手动修改"/> <filteritem type="filename" name="hvigorw.bat" desc="hvigorw配置文件DevEco Studio自动生成不手动修改"/>
<filteritem type="filename" name="hvigorw" desc="hvigorw配置文件DevEco Studio自动生成不手动修改"/> <filteritem type="filename" name="hvigorw" desc="hvigorw配置文件DevEco Studio自动生成不手动修改"/>
<filteritem type="filepath" name="imageknife/src/main/ets/components/3rd_party/.*" desc="第三方开源软件源码,不修改版权头,以防有修改版权风险"/>
</filefilter> </filefilter>
<filefilter name="defaultPolicyFilter" desc="Filters for compatibilitylicense header policies"> <filefilter name="defaultPolicyFilter" desc="Filters for compatibilitylicense header policies">
<filteritem type="filename" name="hvigorfile.js" desc="hvigor构建脚本DevEco Studio自动生成不手动修改"/> <filteritem type="filename" name="hvigorfile.js" desc="hvigor构建脚本DevEco Studio自动生成不手动修改"/>
@ -21,6 +22,7 @@
<filteritem type="filename" name="NOTICE" desc="NOTICE文件不添加版权头"/> <filteritem type="filename" name="NOTICE" desc="NOTICE文件不添加版权头"/>
<filteritem type="filename" name="hvigorw.bat" desc="hvigorw配置文件DevEco Studio自动生成不手动修改"/> <filteritem type="filename" name="hvigorw.bat" desc="hvigorw配置文件DevEco Studio自动生成不手动修改"/>
<filteritem type="filename" name="hvigorw" desc="hvigorw配置文件DevEco Studio自动生成不手动修改"/> <filteritem type="filename" name="hvigorw" desc="hvigorw配置文件DevEco Studio自动生成不手动修改"/>
<filteritem type="filepath" name="imageknife/src/main/ets/components/3rd_party/.*" desc="第三方开源软件源码,不修改版权头,以防有修改版权风险"/>
</filefilter> </filefilter>
<filefilter name="defaultPolicyFilter" desc="Filters for copyright header policies"> <filefilter name="defaultPolicyFilter" desc="Filters for copyright header policies">
</filefilter> </filefilter>
@ -33,6 +35,7 @@
<filteritem type="filename" name="*.gif" desc="gif图片格式文件,用于展示示例"/> <filteritem type="filename" name="*.gif" desc="gif图片格式文件,用于展示示例"/>
<filteritem type="filename" name="*.jpg" desc="jpg图片格式文件,用于展示示例"/> <filteritem type="filename" name="*.jpg" desc="jpg图片格式文件,用于展示示例"/>
<filteritem type="filename" name="*.jpeg" desc="jpeg图片格式文件,用于展示示例"/> <filteritem type="filename" name="*.jpeg" desc="jpeg图片格式文件,用于展示示例"/>
<filteritem type="filepath" name="imageknife/src/main/ets/components/3rd_party/.*" desc="第三方开源软件源码,不修改版权头,以防有修改版权风险"/>
</filefilter> </filefilter>
</filefilterlist> </filefilterlist>
</oatconfig> </oatconfig>

View File

@ -21,8 +21,6 @@
ohpm install @ohos/imageknife ohpm install @ohos/imageknife
``` ```
OpenHarmony npm环境配置等更多内容参考安装教程 [如何安装OpenHarmony npm包](https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_npm_usage.md)。
## 使用说明 ## 使用说明
1.在AbilityStage.ts中,初始化全局ImageKnife实例。 1.在AbilityStage.ts中,初始化全局ImageKnife实例。
@ -440,6 +438,9 @@ request.skipMemoryCache(true)
<img src="screenshot/gif4.gif" width="50%"/> <img src="screenshot/gif4.gif" width="50%"/>
## 约束与限制 ## 约束与限制
在下述版本验证通过:
DevEco Studio: 3.1Release(3.1.3.400), SDK: API9 Release(3.2.11.5) DevEco Studio: 3.1Release(3.1.3.400), SDK: API9 Release(3.2.11.5)
## 目录结构 ## 目录结构

View File

@ -67,6 +67,7 @@
## 约束与限制 ## 约束与限制
在下述版本验证通过: 在下述版本验证通过:
DevEco Studio: 3.1Release(3.1.3.400), SDK: API9 Release(3.2.11.5) DevEco Studio: 3.1Release(3.1.3.400), SDK: API9 Release(3.2.11.5)
## 贡献代码 ## 贡献代码

View File

@ -125,4 +125,3 @@ export type {IDrawLifeCycle} from './src/main/ets/components/imageknife/interfac
// 日志管理 // 日志管理
export * from './src/main/ets/components/imageknife/utils/LogUtil' export * from './src/main/ets/components/imageknife/utils/LogUtil'
export * from './src/main/ets/components/imageknife/utils/spark-md5'

View File

@ -1,4 +1,4 @@
import buffer from '@ohos.buffer';
/* /*
* Fastest md5 implementation around (JKM md5). * Fastest md5 implementation around (JKM md5).
@ -360,9 +360,9 @@
function toUtf8(str) { function toUtf8(str) {
if (/[\u0080-\uFFFF]/.test(str)) { if (/[\u0080-\uFFFF]/.test(str)) {
str = unescape(encodeURIComponent(str)); // 源码是str = unescape(encodeURIComponent(str));这里的API并不对等
buffer.from(str).toString("utf-8")
} }
return str; return str;
} }

View File

@ -15,14 +15,14 @@
import type { IDataFetch } from '../networkmanage/IDataFetch' import type { IDataFetch } from '../networkmanage/IDataFetch'
import { RequestOption } from '../RequestOption' import { RequestOption } from '../RequestOption'
import { SparkMD5 } from '../utils/spark-md5' import { SparkMD5 } from '../../3rd_party/sparkmd5/spark-md5'
import { FileUtils } from '../../cache/FileUtils' import { FileUtils } from '../../cache/FileUtils'
import loadRequest from '@ohos.request'; import loadRequest from '@ohos.request';
// 数据加载器 // 数据加载器
export class NetworkDownloadClient implements IDataFetch { export class NetworkDownloadClient implements IDataFetch {
loadData(request: RequestOption, onComplete: (img: ArrayBuffer) => void, onError: (err: string) => void) { loadData(request: RequestOption, onComplete: (img: ArrayBuffer) => void, onError: (err: string) => void) {
let filename = SparkMD5.hash(request.generateDataKey); let filename = SparkMD5.hashBinary(request.generateDataKey);
let downloadFolder = request.getFilesPath() + "/" + request.networkCacheFolder; let downloadFolder = request.getFilesPath() + "/" + request.networkCacheFolder;
let allpath = request.getFilesPath() + "/" + request.networkCacheFolder + "/" + filename + ".img"; let allpath = request.getFilesPath() + "/" + request.networkCacheFolder + "/" + filename + ".img";
if (!FileUtils.getInstance().existFolder(downloadFolder)) { if (!FileUtils.getInstance().existFolder(downloadFolder)) {

View File

@ -21,7 +21,7 @@
*OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE *OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
*SOFTWARE.*/ *SOFTWARE.*/
//const pako = require('pako'); //const pako = require('pako');
import {deflate} from './pako/lib/deflate' import {deflate} from '../../3rd_party/pako/lib/deflate'
var pako = {deflate} var pako = {deflate}
const UZIP = null; const UZIP = null;

View File

@ -16,7 +16,7 @@
import { RequestOption } from '../../imageknife/RequestOption' import { RequestOption } from '../../imageknife/RequestOption'
import { DiskLruCache } from '@ohos/disklrucache' import { DiskLruCache } from '@ohos/disklrucache'
import { LruCache } from '../../cache/LruCache' import { LruCache } from '../../cache/LruCache'
import { SparkMD5 } from '../utils/spark-md5' import { SparkMD5 } from '../../3rd_party/sparkmd5/spark-md5'
import { MemoryCacheProxy } from '../requestmanage/MemoryCacheProxy' import { MemoryCacheProxy } from '../requestmanage/MemoryCacheProxy'
import { DiskCacheProxy } from '../requestmanage/DiskCacheProxy' import { DiskCacheProxy } from '../requestmanage/DiskCacheProxy'
import { FileTypeUtil } from '../utils/FileTypeUtil' import { FileTypeUtil } from '../utils/FileTypeUtil'
@ -112,14 +112,14 @@ export class RequestManager {
// 变换后缓存 // 变换后缓存
allCacheInfo.resourceCacheInfo = { allCacheInfo.resourceCacheInfo = {
key: SparkMD5.hash(this.options.generateResourceKey), key: SparkMD5.hashBinary(this.options.generateResourceKey),
path: (this.mDiskCacheProxy.getCachePath() + SparkMD5.hash(this.options.generateResourceKey)) path: (this.mDiskCacheProxy.getCachePath() + SparkMD5.hashBinary(this.options.generateResourceKey))
}; };
// 原图缓存 // 原图缓存
allCacheInfo.dataCacheInfo = { allCacheInfo.dataCacheInfo = {
key: SparkMD5.hash(this.options.generateDataKey), key: SparkMD5.hashBinary(this.options.generateDataKey),
path: this.mDiskCacheProxy.getCachePath() + SparkMD5.hash(this.options.generateDataKey) path: this.mDiskCacheProxy.getCachePath() + SparkMD5.hashBinary(this.options.generateDataKey)
} }
this.options.allCacheInfoCallback(allCacheInfo) this.options.allCacheInfoCallback(allCacheInfo)
} }

View File

@ -13,8 +13,8 @@
* limitations under the License. * limitations under the License.
*/ */
import { _default } from '../jsbinaryschemaparser/lib/schemas/gif' import { _default } from '../../../../3rd_party/jsbinaryschemaparser/lib/schemas/gif'
import { conditional, loop, parse } from '../jsbinaryschemaparser/lib/index' import { conditional, loop, parse } from '../../../../3rd_party/jsbinaryschemaparser/lib/index'
import { import {
buildStream, buildStream,
peekByte, peekByte,
@ -25,7 +25,7 @@ import {
readBytes, readBytes,
readString, readString,
readUnsigned readUnsigned
} from '../jsbinaryschemaparser/lib/parsers/uint8' } from '../../../../3rd_party/jsbinaryschemaparser/lib/parsers/uint8'
import { deinterlace } from './deinterlace' import { deinterlace } from './deinterlace'
import { lzw } from './lzw' import { lzw } from './lzw'