1
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user