apparently pandoc has changed behavior over the past releases, so the files are no longer in sync. occasionally this requires edits to the markdown source to not remove an anchor that was there before (albeit wth a very questionable id), or where things were simply being misrendered due to syntax errors.
3.5 KiB
Pict-rs
pict-rs is a a simple image hosting service.
Quickstart
the minimum to start pict-rs is
services.pict-rs.enable = true;
this will start the http server on port 8080 by default.
Usage
pict-rs offers the following endpoints:
-
POST /imagefor uploading an image. Uploaded content must be valid multipart/form-data with an image array located within theimages[]keyThis endpoint returns the following JSON structure on success with a 201 Created status
{ "files": [ { "delete_token": "JFvFhqJA98", "file": "lkWZDRvugm.jpg" }, { "delete_token": "kAYy9nk2WK", "file": "8qFS0QooAn.jpg" }, { "delete_token": "OxRpM3sf0Y", "file": "1hJaYfGE01.jpg" } ], "msg": "ok" } -
GET /image/download?url=...Download an image from a remote server, returning the same JSON payload as thePOSTendpoint -
GET /image/original/{file}for getting a full-resolution image.filehere is thefilekey from the/imageendpoint's JSON -
GET /image/details/original/{file}for getting the details of a full-resolution image. The returned JSON is structured like so:{ "width": 800, "height": 537, "content_type": "image/webp", "created_at": [ 2020, 345, 67376, 394363487 ] } -
GET /image/process.{ext}?src={file}&...get a file with transformations applied. existing transformations includeidentity=true: apply no changesblur={float}: apply a gaussian blur to the filethumbnail={int}: produce a thumbnail of the image fitting inside an{int}by{int}square using raw pixel samplingresize={int}: produce a thumbnail of the image fitting inside an{int}by{int}square using a Lanczos2 filter. This is slower than sampling but looks a bit better in some casescrop={int-w}x{int-h}: produce a cropped version of the image with an{int-w}by{int-h}aspect ratio. The resulting crop will be centered on the image. Either the width or height of the image will remain full-size, depending on the image's aspect ratio and the requested aspect ratio. For example, a 1600x900 image cropped with a 1x1 aspect ratio will become 900x900. A 1600x1100 image cropped with a 16x9 aspect ratio will become 1600x900.
Supported
extfile extensions includepng,jpg, andwebpAn example of usage could be
GET /image/process.jpg?src=asdf.png&thumbnail=256&blur=3.0which would create a 256x256px JPEG thumbnail and blur it
-
GET /image/details/process.{ext}?src={file}&...for getting the details of a processed image. The returned JSON is the same format as listed for the full-resolution details endpoint. -
DELETE /image/delete/{delete_token}/{file}orGET /image/delete/{delete_token}/{file}to delete a file, wheredelete_tokenandfileare from the/imageendpoint's JSON
Missing
- Configuring the secure-api-key is not included yet. The envisioned basic use case is consumption on localhost by other services without exposing the service to the internet.