Image Storage Service
The ImageStorageService (Alert.CA.ImageStorageService) is a class library that provides a polymorphic abstraction layer for storing images, generating thumbnails, and broadcasting metadata. It is consumed by the Image Acquisition Engine.
Architectureβ
Storage Path Conventionβ
All images follow a hierarchical blob path:
{deviceId}/{imageType}/{year}/{month:00}/{day:00}/{hour:00}/{minute:00}/
Example:
cam-001/single/2026/03/11/14/30/image.jpg
cam-001/single/2026/03/11/14/30/thumbnail.jpg
cam-001/panorama/2026/03/11/14/30/stitched.jpg
cam-001/pre-stitched/2026/03/11/14/30/components.zip
Dependenciesβ
| Dependency | Purpose |
|---|---|
| Emgu.CV | OpenCV image processing |
| System.Drawing.Common | Thumbnail generation, image stitching |
| SignalR Client | Real-time metadata broadcasting |
| AlertCAInfrastructure | Repository access (Blob, Table Storage) |
Documentation Sectionsβ
- Storage Architecture β Blob path strategy and polymorphic base class
- Image Types β Single, panoramic, and pre-stitched storage services
- Thumbnail Generation β Aspect-ratio preserving thumbnail creation
- Real-Time Streaming β SignalR metadata broadcasting
- Durable State Management β Entity state to Table Storage sync