Define product image standards
This commit is contained in:
146
docs/image-guidelines.md
Normal file
146
docs/image-guidelines.md
Normal file
@@ -0,0 +1,146 @@
|
||||
# Product Image Guidelines
|
||||
|
||||
## Purpose
|
||||
|
||||
Product images help users identify ammunition products while browsing, scanning, or importing catalog records.
|
||||
|
||||
Images are optional. RoundCount must continue working when an image is missing or unavailable.
|
||||
|
||||
## Supported Formats
|
||||
|
||||
Preferred:
|
||||
|
||||
- WebP
|
||||
|
||||
Accepted:
|
||||
|
||||
- JPEG
|
||||
- PNG
|
||||
|
||||
Not accepted:
|
||||
|
||||
- GIF
|
||||
- SVG
|
||||
- TIFF
|
||||
- BMP
|
||||
- Renamed or executable files
|
||||
|
||||
## File Naming
|
||||
|
||||
Store images using:
|
||||
|
||||
images/<manufacturer>/<product-identifier>.<extension>
|
||||
|
||||
Use the UPC as the filename when available:
|
||||
|
||||
images/winchester/020892201989.webp
|
||||
|
||||
When no UPC exists, use a normalized manufacturer SKU:
|
||||
|
||||
images/lake-city/lc-m193-55gr.webp
|
||||
|
||||
Naming requirements:
|
||||
|
||||
- Lowercase manufacturer directories
|
||||
- Lowercase filenames
|
||||
- Hyphens instead of spaces
|
||||
- Letters, numbers, hyphens, and periods only
|
||||
|
||||
## Image Size
|
||||
|
||||
Recommended dimensions:
|
||||
|
||||
800 x 800 pixels
|
||||
|
||||
Maximum dimensions:
|
||||
|
||||
1600 x 1600 pixels
|
||||
|
||||
Recommended maximum size:
|
||||
|
||||
500 KB
|
||||
|
||||
Absolute maximum size:
|
||||
|
||||
1 MB
|
||||
|
||||
Images should be resized and compressed before being committed.
|
||||
|
||||
## Image Content
|
||||
|
||||
Preferred images should:
|
||||
|
||||
- Clearly show the product packaging
|
||||
- Have a plain or uncluttered background
|
||||
- Be properly oriented
|
||||
- Be sharp and well lit
|
||||
- Show identifying product information when possible
|
||||
|
||||
Do not include:
|
||||
|
||||
- Personal information
|
||||
- People
|
||||
- Receipts
|
||||
- Shipping labels
|
||||
- Storage locations
|
||||
- Personal inventory markings
|
||||
- Unrelated objects
|
||||
- Contributor-added watermarks
|
||||
|
||||
## Catalog Record Reference
|
||||
|
||||
Catalog records should contain a repository-relative path:
|
||||
|
||||
"image": {
|
||||
"path": "images/federal/029465063924.webp",
|
||||
"sha256": null
|
||||
}
|
||||
|
||||
Do not place the complete Gitea URL in each product record.
|
||||
|
||||
RoundCount should construct the download URL from its configured catalog repository address.
|
||||
|
||||
## SHA-256 Checksums
|
||||
|
||||
Generate a checksum with:
|
||||
|
||||
sha256sum images/federal/029465063924.webp
|
||||
|
||||
The resulting 64-character value may be stored in the product record.
|
||||
|
||||
Checksums allow RoundCount to verify that the downloaded image is complete and unchanged.
|
||||
|
||||
## Missing Images
|
||||
|
||||
When no product image is available, use:
|
||||
|
||||
"image": null
|
||||
|
||||
RoundCount should display its built-in placeholder image.
|
||||
|
||||
Do not store separate copies of the placeholder for every product.
|
||||
|
||||
## Image Validation
|
||||
|
||||
The catalog validation tool should eventually verify:
|
||||
|
||||
- The referenced image exists
|
||||
- The extension is supported
|
||||
- The file is a valid image
|
||||
- Dimensions are within limits
|
||||
- File size is within limits
|
||||
- SHA-256 matches when provided
|
||||
- The path remains inside the images directory
|
||||
|
||||
## Copyright and Sources
|
||||
|
||||
Only add images that may legally be stored and redistributed.
|
||||
|
||||
Preferred sources:
|
||||
|
||||
1. Original contributor photograph
|
||||
2. Manufacturer-provided media
|
||||
3. Distributor media with redistribution permission
|
||||
4. Properly licensed third-party media
|
||||
|
||||
Image source information should be documented when appropriate.
|
||||
Reference in New Issue
Block a user