No description
Find a file
2025-12-04 12:04:39 +00:00
.idea/.idea.StitchATon2/.idea Initial commit 2025-07-30 07:30:00 +07:00
App solve 'edge' case and pass cancellation token 2025-08-01 22:13:13 +07:00
Domain solve 'edge' case and pass cancellation token 2025-08-01 22:13:13 +07:00
Infra solve 'edge' case and pass cancellation token 2025-08-01 22:13:13 +07:00
StitchATon2.Benchmark solve edge case 2025-08-01 09:51:39 +07:00
.gitignore Initial commit 2025-07-30 07:30:00 +07:00
global.json Upgrade to .net9 2025-07-31 06:19:32 +07:00
README.md Update README.md 2025-12-04 12:04:39 +00:00
StitchATon2.sln solve 'edge' case and pass cancellation token 2025-08-01 22:13:13 +07:00

Stitch-a-ton Contest Submission

Repository moved to: https://github.com/denniskematian/GigATon

Installation

This project is build using .NET 9, with SixLabors.ImageSharp as the only external library. Please refer to install dotnet SDK on Debian for details.

1. Build

Install dependencies:

wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install -y dotnet-sdk-9.0

Build the project in App folder using command:

dotnet publish -c Release -r linux-arm64 --self-contained true -o ./publish

2. Running the app

After publishing, enter the folder /publish then run

./StitchATon2.App

Ideas

Since we only serve a static assets and the output is downscale only, I think it's good to pre-process each image to image integral first and then save it to another directory (eg. temp).

Later, we can apply Box Filter averaging on the fly to output Stream (HttpResponse).

Approach

This project is heavily depends on Memory Mapped File to reduce processing overhead and memory pressure to allow HTTP serve more request. The MMF is used to store the Image Integral of provided asset.