New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@smartface/image-processor

Package Overview
Dependencies
Maintainers
7
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@smartface/image-processor - npm Package Compare versions

Comparing version

to
1.1.0

src/android/drawable.js

2

package.json
{
"name": "@smartface/image-processor",
"version": "1.0.2",
"version": "1.1.0",
"description": "iOS, Android image processor with different scales",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -13,3 +13,3 @@ const Jimp = require('jimp');

return new Promise((resolve, reject) => {
Jimp.read(imagePath, (err, image) => {
readImageFromCache(imagePath, (err, image) => {
if (err)

@@ -31,3 +31,79 @@ return reject(err);

}
module.exports.scaleOneImage = scaleOneImage;
module.exports.scaleOneImage = scaleOneImage;
/**
* @function resizeOneImage
* scale one image with given scaleFactor
* @param {string} imagePath absolute path of given source image
* @param {number} width width of generated image
* @param {number} heigth heigth of generated image
* @param {string} name name of new image.
* @return {Promise} promise of result image.
*/
function resizeOneImage(imagePath, width, height, name) {
return new Promise((resolve, reject) => {
readImageFromCache(imagePath, (err, image) => {
if (err)
return reject(err);
image.resize(width || Jimp.AUTO, height || Jimp.AUTO, Jimp.RESIZE_BEZIER);
resolve({
image,
name
});
});
});
}
module.exports.resizeOneImage = resizeOneImage;
/**
* @function cropAndResize
* scale one image with given scaleFactor
* @param {string} imagePath absolute path of given source image
* @param {number} width width of generated image
* @param {number} heigth heigth of generated image
* @param {string} name name of new image.
* @return {Promise} promise of result image.
*/
function cropAndResize(imagePath, width, height, name) {
return new Promise((resolve, reject) => {
readImageFromCache(imagePath, (err, image) => {
if (err)
return reject(err);
var isLandScape = width >= height;
var w = image.bitmap.width; // the width of the image
var h = image.bitmap.height; // the height of the image
console.log(`width ${w} height ${h}`);
var scaleFactor = (isLandScape ? w : h) / (isLandScape ? width : height);
image
.crop(
isLandScape ? 0 : (w / 2) - (scaleFactor * width * 0.5),
isLandScape ? (h / 2) - (scaleFactor * height * 0.5) : 0,
scaleFactor * width,
scaleFactor * height
).scale(1 / scaleFactor);
resolve({
image,
name
});
});
});
}
module.exports.cropAndResize = cropAndResize;
var cache = {};
function readImageFromCache(imagePath, cb) {
if (cache[imagePath])
return cb(null, cache[imagePath].clone());
Jimp.read(imagePath, (err, image) => {
if (err)
return cb(err);
cache[imagePath] = image;
cb(null, image.clone());
});
}
const path = require("path");
const generateImageSet = require("./imageset").generateImageSet;
const generateDrawables = require("./drawable").generateDrawables;
const deleteImageSet = require("./imageset").deleteImageSet;
const deleteDrawables = require("./drawable").deleteDrawables;
const iosImagesHandler = require("./ios");
const androidImagesHandler = require("./android");

@@ -22,2 +20,4 @@ const DEFAULT_SCALE_FACTOR = 3;

const deleteFlag = argv.delete;
const isIconImage = argv.isIconImage;
const isLaunchImage = argv.isLaunchImage;

@@ -36,2 +36,6 @@ if (!(srcImage && destAndroidFolder && destiOSFolder) ||

--delete : flag -> delete images from 'destiOSFolder' and 'destAndroidFolder' (optional)
--isIconImage : flag -> generate given image as AppIcon (icons)
--isLaunchImage : flag -> generate given image as LaunchImage (splash images)
Example input: smartface.png, smartface.ios.png, smarface.android.4x.png
`);

@@ -53,9 +57,23 @@ process.exit(1);

if (!os || (os === OS.iOS)) { // generate imageset.
deleteFlag ? taskPromises.push(deleteImageSet(imageName, destiOSFolder)) :
taskPromises.push(generateImageSet(srcImage, scale, imageName, destiOSFolder));
taskPromises.push(iosImagesHandler({
deleteFlag,
isIconImage,
isLaunchImage,
srcImage,
imageName,
destFolder: destiOSFolder,
scale
}));
}
if (!os || (os === OS.Android)) { // generate drawables.
deleteFlag ? taskPromises.push(deleteDrawables(imageName, destAndroidFolder)) :
taskPromises.push(generateDrawables(srcImage, scale, imageName, destAndroidFolder));
taskPromises.push(androidImagesHandler({
deleteFlag,
isIconImage,
isLaunchImage,
srcImage,
imageName,
destFolder: destAndroidFolder,
scale
}));
}

@@ -62,0 +80,0 @@

@@ -41,3 +41,5 @@ const fs = require('fs-extra');

function writeImageHelper(item) {
return item.image.writeAsync(item.name);
return new Promise((resolve, reject) => {
item.image.writeAsync(item.name).then(res => resolve(item.name), reject);
});
}

@@ -44,0 +46,0 @@