Я пытаюсь сохранить изображения, снятые с камеры онлайн.Но размер изображения превышает МБ.
Я сталкивался со свойствами decodeWidth и decodeHeight, но не понял, как это работает.Можно ли уменьшить размер изображения, взятого из этих свойств.
<StackLayout>
<Image src="" decodeWidth="400" decodeHeight="400" loadMode="async" />
<Label text="With loadMode set to async the UI won't be blocked"
textWrap="true" />
</StackLayout>
Мне нужно уменьшить размер изображения до 50px или меньше перед загрузкой.Как этого добиться.
Я пробовал что-то подобное, но у меня изображение не сохраняется.
let ImageAsset = require('tns-core-modules/image-asset').ImageAsset;
const asset = new ImageAsset("~/images/nature.jpg");
asset.options = {
width: 100,
height: 100,
keepAspectRatio: true
};
console.log(asset);
const imageSourceModule = require("tns-core-modules/image-source");
const fileSystemModule = require("tns-core-modules/file-system");
const img = imageSourceModule.fromFile(asset._android);
const folderRoot = fileSystemModule.knownFolders.documents();
folderRoot._path = "/storage/emulated/0/";
const folder = folderRoot.getFolder("AAAA/");
const pathDest = fileSystemModule.path.join(folder._path, `sample.jpg`);
const exists = fileSystemModule.File.exists(pathDest);
if (exists == true) {
const saved = img.saveToFile(pathDest, "jpg");
if (saved) {
console.log("Image saved successfully!");
}
} else {
console.log("Image not saved successfully!");
}
console
JS: {
JS: "_observers": {},
JS: "_options": {
JS: "width": 100,
JS: "height": 100,
JS: "keepAspectRatio": true
JS: },
JS: "_android": "/data/data/org.nativescript.cameraplus/files/app/images/nature.jpg"
JS: }
JS: Image not saved successfully!