This commit is contained in:
2026-09-24 16:25:22 +08:00
commit 7428184f01
1198 changed files with 314515 additions and 0 deletions
@@ -0,0 +1,3 @@
{
"minSdkVersion": "21"
}
@@ -0,0 +1,33 @@
import Context from "android.content.Context"
import Bitmap from "android.graphics.Bitmap"
import BitmapFactory from "android.graphics.BitmapFactory"
import Base64 from "android.util.Base64"
import File from "java.io.File"
import FileOutputStream from "java.io.FileOutputStream"
export function toPngFile(data : string) : Promise<string> {
let fileName = Math.random().toString(16).substring(2, 16)
let baesestrAr = data.split(',') as string[]
let base64Data = baesestrAr[1]
let fileUrl = ''
try {
let context = UTSAndroid.getAppContext()!
let filepath = context.getExternalCacheDir()?.getPath() ?? ""
// 解码Base64字符串
let decodedBytes = Base64.decode(base64Data, Base64.DEFAULT)
let bitmap = BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.size)
let file = new File(filepath, fileName + '.png');
let fos = new FileOutputStream(file)
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fileUrl = file.getPath();
} catch (error) {
console.error('处理图片错误:', error)
//TODO handle the exception
return Promise.reject(fileUrl) as Promise<string>
}
return Promise.resolve(fileUrl)
}
@@ -0,0 +1,5 @@
{
"dependencies": {
"x_library_s": "./lib/x_library_s.har"
}
}
@@ -0,0 +1,14 @@
import { x_toPngFile } from "x_library_s";
import { BusinessError } from "@kit.BasicServicesKit";
export function toPngFile(data : string) : Promise<string> {
try {
const file = x_toPngFile(UTSHarmony.getCurrentWindow()!.getUIContext(),data)
return Promise.resolve(file);
} catch (error) {
const e = error as BusinessError;
console.error("TMUI",e.message)
return Promise.reject(e.message);
}
}
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array/>
</dict>
</plist>
@@ -0,0 +1,3 @@
{
"deploymentTarget": "12"
}
@@ -0,0 +1,19 @@
import { Data } from 'Foundation';
import { UIImage } from 'UIKit';
export function toPngFile(data : string):Promise<string> {
let fileName = Math.random().toString(16).substring(2,16)
let baesestrAr = data.split(',') as string[]
let base64Data = baesestrAr[1]
let imageData = new Data(base64Encoded = base64Data)
if(imageData==null) return Promise.reject('') as Promise<string>
let image = new UIImage(data = imageData!)
if(image==null) return Promise.reject('') as Promise<string>
let userDir = FileManager.default.urls(for = FileManager.SearchPathDirectory.cachesDirectory, in = FileManager.SearchPathDomainMask.userDomainMask).first!
let destinationFileName = fileName + ".png"
let fileURL = userDir.appendingPathComponent(destinationFileName)
let isSuccess = UTSiOS.try(imageData!.write(to =fileURL),"?")
if(isSuccess==null) return Promise.reject('') as Promise<string>
return Promise.resolve(fileURL.path)
}
@@ -0,0 +1,18 @@
export function toPngFile(data : string) : Promise<string> {
let bdataBase64 = data.split(',')[1]
let fileMg = wx.getFileSystemManager();
let filepath = `${wx.env.USER_DATA_PATH}/${Math.random().toString(16).substring(4, 20)}.png`
return new Promise((res, rej) => {
fileMg.writeFile({
filePath: filepath,
data: bdataBase64,
encoding: "base64",
success() {
res(filepath)
},
faile() {
rej("")
}
})
})
}
@@ -0,0 +1,20 @@
// function compressImage(quality:number) : string {
// let base64data = canvas.toDataURL('image/jpeg', attrs.compress / 100);
// return base64data;
// }
function base64ToBlob(data : string) : Blob {
let bytes = window.atob(data.split(',')[1])
let ab = new ArrayBuffer(bytes.length)
let ia = new Uint8Array(ab)
for (let i = 0; i < bytes.length; i++) {
ia[i] = bytes.charCodeAt(i)
}
// @ts-ignore
return new Blob([ab], { type: 'image/jpeg' })
}
// ,quality:number
export function toPngFile(data : string) : Promise<string> {
let bloblfaile = URL.createObjectURL(base64ToBlob(data));
return Promise.resolve(bloblfaile);
}