Skip to main content

13. Custom Operator Logo

Custom Operator Logo

Custom operator logos are managed in /admin/resources under the custom operator logo section.

1. Naming and priority

Allowed naming patterns:

  1. generic logo: OPERATOR.bmp or OPERATOR.png
  2. type-specific logo: OPERATOR-ICAOTYPE.bmp or OPERATOR-ICAOTYPE.png

Runtime priority:

  1. type-specific logo is preferred,
  2. generic logo is fallback.

Examples:

  1. DLH.png applies to all Lufthansa aircraft that resolve to DLH,
  2. DLH-A321.png applies only when the resolved operator is DLH and the aircraft ICAO type is A321,
  3. if both files exist, DLH-A321.png wins for A321 aircraft and DLH.png remains the generic fallback.

2. Admin workflow

In /admin/resources:

  1. enter the operator code,
  2. optionally enter the ICAO type for a type-specific logo,
  3. upload a .bmp or .png image,
  4. confirm downscale if the image has correct proportions but is larger than 85x20,
  5. enable overwrite only when replacing an existing logo for the same key.

The same page lists uploaded custom logos and allows deleting them. Deleting a custom logo removes the file, synchronizes metadata, and reloads resources immediately.

3. Validation rules

  1. file type must be .bmp or .png,
  2. file size limit is 2 MB,
  3. required aspect ratio is 17:4,
  4. template size is 85x20,
  5. if image has valid ratio but larger dimensions, explicit downscale confirmation is required,
  6. operator code accepts A-Z, 0-9, @, ., _, +, - (2-40 chars),
  7. optional ICAO type accepts A-Z, 0-9 (2-12 chars).

4. Overwrite behavior

  1. if target logo already exists and overwrite=false, upload returns conflict,
  2. when saving one extension, counterpart extension for same key is removed to keep deterministic lookup.

5. Storage and metadata

  1. files are stored in Images/AirlineLogos,
  2. upload metadata is tracked in custom-operator-flags.json,
  3. after upload/delete, OperatorFlagsList.csv is synchronized,
  4. resource service is reloaded immediately.

6. Troubleshooting

  1. If the uploaded image is rejected, check aspect ratio first. Valid examples are 85x20, 170x40, and 255x60.
  2. If the logo uploads but is not visible, verify the operator code used by the aircraft. Operator aliases can help callsign-derived codes resolve to expected carrier names, but logo lookup still needs matching operator/type metadata.
  3. If an older logo keeps appearing, clear browser cache and verify that the opposite extension was removed for the same key.