He probado generar la "imagen" con una sucesión de carácteres de 0 a 255 y me aparece el mismo problema que con la imagen bmp. No he logrado obtener el resultado correcto tal como comentas.
PHP
Código:
<?PHP
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="image.bmp"');
for( $i=0; $i < 256; $i++) echo( chr( $i));
?>
He probado cambiar de servidor por si resultara ser un bug del mismo, pueden testearlo en http://www.leyendaepica.es/include2.html
Así también tienen un acceso mas fácil a los archivos bases para hacer las pruebas.
Me sale exactamente lo mismo con varios exploradores:
Código:
Size: 306
66 77 50 1 0 0 0 0 0 0 54 0 0 0 40 0 0 0 9 0 0 0 9 0
0 0 1 0 24 0 0 0 0 0 65533 0 0 0 65533 14 0 0
65533 14 0 0 0 0 0 0 0 0 0 0 36 36 36 82 82 82
76 76 76 100 88 100 84 80 84 76 76 76 76 76 76
82 82 82 36 36 36 0 82 82 82 65533
65533 65533 65533 65533 65533...
...
Personalmente tiendo a pensar en un problema de javascript puesto que las imágenes se envían correctamente en todos los casos "no ajax", por ejemplo escribiendo directamente Icon.bmp en la barra de direcciones.