UNPKG

tns-core-modules

Version:

Telerik NativeScript Core Modules

93 lines (92 loc) 3.04 kB
var types = require("utils/types"); var fs = require("file-system"); var common = require("./image-source-common"); var enums = require("ui/enums"); global.moduleMerge(common, exports); var ImageSource = (function () { function ImageSource() { } ImageSource.prototype.loadFromResource = function (name) { this.ios = UIImage.imageNamed(name); return this.ios != null; }; ImageSource.prototype.loadFromFile = function (path) { var fileName = types.isString(path) ? path.trim() : ""; if (fileName.indexOf("~/") === 0) { fileName = fs.path.join(fs.knownFolders.currentApp().path, fileName.replace("~/", "")); } this.ios = UIImage.imageWithContentsOfFile(fileName); return this.ios != null; }; ImageSource.prototype.loadFromData = function (data) { this.ios = UIImage.imageWithData(data); return this.ios != null; }; ImageSource.prototype.loadFromBase64 = function (source) { if (types.isString(source)) { var data = NSData.alloc().initWithBase64EncodedStringOptions(source, NSDataBase64DecodingOptions.NSDataBase64DecodingIgnoreUnknownCharacters); this.ios = UIImage.imageWithData(data); } return this.ios != null; }; ImageSource.prototype.setNativeSource = function (source) { this.ios = source; return source != null; }; ImageSource.prototype.saveToFile = function (path, format, quality) { if (!this.ios) { return false; } var data = getImageData(this.ios, format, quality); if (data) { return data.writeToFileAtomically(path, true); } return false; }; ImageSource.prototype.toBase64String = function (format, quality) { var res = null; if (!this.ios) { return res; } var data = getImageData(this.ios, format, quality); if (data) { res = data.base64Encoding(); } return res; }; Object.defineProperty(ImageSource.prototype, "height", { get: function () { if (this.ios) { return this.ios.size.height; } return NaN; }, enumerable: true, configurable: true }); Object.defineProperty(ImageSource.prototype, "width", { get: function () { if (this.ios) { return this.ios.size.width; } return NaN; }, enumerable: true, configurable: true }); return ImageSource; }()); exports.ImageSource = ImageSource; function getImageData(instance, format, quality) { if (quality === void 0) { quality = 1.0; } var data = null; switch (format) { case enums.ImageFormat.png: data = UIImagePNGRepresentation(instance); break; case enums.ImageFormat.jpeg: data = UIImageJPEGRepresentation(instance, quality); break; } return data; }