42 lines
No EOL
1.3 KiB
Markdown
42 lines
No EOL
1.3 KiB
Markdown
# 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](https://learn.microsoft.com/en-us/dotnet/core/install/linux-debian?tabs=dotnet9)
|
|
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](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).
|
|
|
|
## 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. |