Ideal for creating visually engaging collages, such as photo collections, product showcases, or even presentations styled like a comic book.

📥 Download and Install

You can install the tool in one of the following ways:

Manual Installation

  • Download the zip file, extract it to a folder of your choice, and start using the tool.
  • For convenience, you can add its path to the PATH environment variable.

Choose your platform to start using dazed:

Using a Package Manager

» macOS, linux » Homebrew

brew tap lucasepe/cli-tools
brew install dazed

⚙️ USAGE

dazed <ACTION> [FLAGS]

ACTIONS

Action Description
-C Combine images in your layout
–help Display this help and exit
-v,–version Output version information and exit

FLAGS

Flag Description Default
-i Specifies the path to the JSON file describing your layout
-w Sets the width of the final output page in pixels, trimming it to this value 1838 px
-h Sets the height of the final output page in pixels, trimming it to this value 2775 px
-m Defines a ‘safe area margin’ around the edges of the page in pixels. 75 px
-b Sets the ‘bleeding’ area in pixels, which extends the edges of the page beyond its trim size. 38 px

📚 EXAMPLES

» Combine images (using default sizes):

dazed -C -i path/to/layout/json/file

» Combine images (using custom sizes):

dazed -C -i path/to/layout/json/file -w 1988 -h 3056

💡 HOW TO CREATE YOUR OWN LAYOUT

To use the tool for combining images into custom layouts, follow these steps to prepare a layout JSON file.

Structure of the JSON file

The JSON file defines how images will be arranged on the final page. Each entry in the items array specifies:

  • image: file path to the image you want to include.
  • box: area of the page where the image will be placed, defined as:
    • min: top-left corner of the box (fraction of the page width and height)
    • max: bottom-right corner of the box (fraction of the page width and height)
  • outline: whether to draw a border around the box (true) or not (false)

Coordinate System

  • page dimensions are normalized to a range from 0 to 1
  • coordinates (0, 0) correspond to the top-left corner of the page
  • coordinates (1, 1) correspond to the bottom-right corner of the page

Example:

"box": {
    "min": {"x": 0.5, "y": 0.5},
    "max": {"x": 1, "y": 1}
}

Places the image in the bottom-right quadrant of the page

Example JSON Layout

Here is an example of a complete JSON layout file:

{
    "items": [
        {
            "image": "tmp/header.png",
            "box": {
                "min": {"x": 0, "y": 0},
                "max": {"x": 1, "y": 0.2}
            },
            "outline": true
        },
        {
            "image": "tmp/left_column.png",
            "box": {
                "min": {"x": 0, "y": 0.2},
                "max": {"x": 0.5, "y": 0.8}
            },
            "outline": false
        },
        {
            "image": "tmp/right_column.png",
            "box": {
                "min": {"x": 0.5, "y": 0.2},
                "max": {"x": 1, "y": 0.8}
            },
            "outline": false
        },
        {
            "image": "tmp/footer.png",
            "box": {
                "min": {"x": 0, "y": 0.8},
                "max": {"x": 1, "y": 1}
            },
            "outline": true
        }
    ]
}

Tips for Designing Layouts

  1. Plan the Layout:
  • Sketch your page design and divide it into sections
  • Determine the fraction of the page each image should occupy
  1. Outline for Debugging:
  • Set "outline": true to visualize the placement of each box during testing
  1. Avoid Overlapping:
  • Ensure that boxes do not overlap unless intentionally designed
  1. Maintain Aspect Ratios:
  • Images will be scaled to fit their boxes
    • adjust image proportions before using them if necessary

👍 SUPPORT

All tools are completely free to use, with every feature fully unlocked and accessible.

If you find one or more of these tool helpful, please consider supporting its development with a donation.

Your contribution, no matter the amount, helps cover the time and effort dedicated to creating and maintaining these tools, ensuring they remain free and receive continuous improvements.

Every bit of support makes a meaningful difference and allows me to focus on building more tools that solve real-world challenges.

Thank you for your generosity and for being part of this journey!