StitchATon2/README.md

42 lines
1.3 KiB
Markdown
Raw Normal View History

2025-07-30 07:54:09 +07:00
# Stitch-a-ton Contest Submission
2025-12-04 12:04:39 +00:00
Repository moved to: https://github.com/denniskematian/GigATon
2025-07-30 07:54:09 +07:00
## Installation
2025-08-01 15:28:31 +00:00
This project is build using .NET 9, with SixLabors.ImageSharp as the only external library.
Please refer to [install dotnet SDK on Debian](https://learn.microsoft.com/en-us/dotnet/core/install/linux-debian?tabs=dotnet9)
for details.
2025-07-30 07:54:09 +07:00
### 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
2025-08-01 15:28:31 +00:00
sudo apt install -y dotnet-sdk-9.0
2025-07-30 07:54:09 +07:00
```
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
```
2025-08-01 15:28:31 +00:00
## Ideas
2025-07-30 07:54:09 +07:00
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](https://en.wikipedia.org/wiki/Summed-area_table) first and then save it to another directory (eg. temp).
Later, we can apply Box Filter averaging on the fly to output Stream (HttpResponse).
2025-08-01 15:28:31 +00:00
## 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.