ICM
application/vnd.iccprofile
Magic Bytes
Offset: 36
61 63 73 70
The Image Color Matching (ICM) file is a standard color profile format defined by the International Color Consortium to characterize the color attributes of input, output, or display devices. These profiles ensure consistent color reproduction across photography workflows, printing systems, and monitors by mapping device-dependent color values to a standard color space. While functionally identical to the ICC extension, the ICM designation was historically favored by Windows operating systems, though modern software accepts both interchangeably without security risks.
Validation Code
How to validate .icm files in Python
Python
def is_icm(file_path: str) -> bool:
"""
Check if file is a valid ICM by magic bytes.
Signature offset: 36 bytes
"""
signature = bytes([0x61, 0x63, 0x73, 0x70])
with open(file_path, "rb") as f:
f.seek(36)
return f.read(4) == signature
How to validate .icm files in Node.js
Node.js
function isICM(buffer: Buffer): boolean {
// Signature offset: 36 bytes
const signature = Buffer.from([0x61, 0x63, 0x73, 0x70]);
if (buffer.length < 40) return false;
return buffer.subarray(36, 40).equals(signature);
}
Go
func IsICM(data []byte) bool {
// Signature offset: 36 bytes
signature := []byte{0x61, 0x63, 0x73, 0x70}
if len(data) < 40 {
return false
}
return bytes.Equal(data[36:40], signature)
}
API Endpoint
GET
/api/v1/icm
curl https://filesignature.org/api/v1/icm