{"id":21502354,"url":"https://github.com/mrtcode/beautystack","last_synced_at":"2025-09-03T15:42:05.330Z","repository":{"id":15193883,"uuid":"17922027","full_name":"mrtcode/beautystack","owner":"mrtcode","description":"A node.js module to make beautiful stacks of photos. ","archived":false,"fork":false,"pushed_at":"2014-03-22T18:03:59.000Z","size":15556,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T13:46:47.495Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrtcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-19T22:01:28.000Z","updated_at":"2021-02-20T15:18:30.000Z","dependencies_parsed_at":"2022-08-25T11:20:16.266Z","dependency_job_id":null,"html_url":"https://github.com/mrtcode/beautystack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mrtcode/beautystack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtcode%2Fbeautystack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtcode%2Fbeautystack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtcode%2Fbeautystack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtcode%2Fbeautystack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrtcode","download_url":"https://codeload.github.com/mrtcode/beautystack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtcode%2Fbeautystack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273467579,"owners_count":25111130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-23T18:14:36.377Z","updated_at":"2025-09-03T15:42:05.311Z","avatar_url":"https://github.com/mrtcode.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"#Beautystack.js\n\nA node.js module to make *beautiful stacks of photos*. It utilizes [Imagemagick polaroid](http://www.imagemagick.org/Usage/transform/#polaroid) feature and gives you simple and node.js ready solution to generate images stacks like this:\n\n![](https://raw.githubusercontent.com/bagdonas/beautystack/master/docs/images/example1.jpg)\n\n##Features\n- Supports background color, image or trancparency\n- Has many customization parameters like spacing, rotation, quality\n- Supports directory or array of files for input\n- Works asynchroniously, supports simultanious conversions of images\n- Has event for tracking progress of conversion in percents\n- Makes loseless autorotations of original images\n\n##Installation\nFor this module only [ImageMagick](http://www.imagemagick.org/) and [jhead](http://www.sentex.net/~mwandel/jhead/) are needed to be installed.\n\n###For Ubuntu and Debian\n    apt-get install imagemagick\n    apt-get install jhead\n\n###For Mac OS X\n    brew install imagemagick\n    brew install jhead\n\n###Instalation of module\nVia [npm](http://www.npmjs.org/):\n\n    npm install beautystack\n    \nOr clone repo:\n\n    npm install git://github.com/bagdonas/beautystack.git\n\n##Getting Started\nThe bare minimum code needed to start conversion:\n```js\nvar beautystack = require('beautystack');\n\nvar bs = new beautystack;\n\nvar config = {\n  source: 'images/',\n  output: 'output/example1.png',\n};\n\nbs.process(config, function(err, data) {\n  if (err) {\n    console.log('Beautystack processing error: ' + err);\n    return;\n  }\n  console.log('Photos processed! Check out your new beautiful stack of photos: ' + data.output);\n});\n```\nTo track the progress of conversion:\n```js\nbs.on('progress', function(data) {\n  console.log(\"Percent: \" + data.percent);\n});\n```\nMore configuration examples:\n```js\nvar config = {\n  source: [ //now source is the list of image paths, in example above it was directory\n    'images/Yellow-leaf.jpg',\n    'images/Winter-wallpaper-by-cool-wallpapers-15.jpg',\n    'images/winter-accident.jpg',\n    'images/wallpapers-nature-animals.jpg',\n    'images/Spring-starts.jpg'\n  ],\n  output: 'output/example1.png', //where to put file after conversion, also you can choose file type by changing extension\n  width: 200, //width of all those small images\n  height: 140, //height\n  columns: 4, //columns of small images in output image\n  rotation: 30, //max rotation angle in degrees, it varties randomly between minus and plus of this value\n  background: 'transparent', //could be some color like 'white', 'red' or image ***STILL WORKING ON THIS\n  quality: 96 //quality of output image\n};\n```\n**Important.** Keep attention when selecting output file type and background, because for example *jpeg* doesn't support transparency. Most other formats supports it.\n\n##Todo\n- Make everything faster\n- Add more options to customize a stack\n- Fully implement all kinds of background types\n- Make it work with buffers\n- Better control 'the flow' of module, because image conversions is really strainful for cpu\n - Limit simultanious conversions respecting the speed of computer or VM\n - Better utilize multicore systems\n - Monitor server load and schedule conversation tasks accordingly\n- Distribute conversion tasks on multiple servers\n\n##Author\nMartynas Bagdonas\n\nCheck out some other interesting projects on my [blog](http://martynas.bagdonas.net/).\n\n##License\nMIT\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrtcode%2Fbeautystack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrtcode%2Fbeautystack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrtcode%2Fbeautystack/lists"}