如何从 ppm 文件中提取注释?

如何从 ppm 文件中提取注释?

我有 ppm 文件 X.ppm 带有注释:

 xxd X.ppm|head -10
0000000: 5036 0a23 206d 6967 6874 796d 616e 6465  P6.# mightymande
0000010: 6c20 2d32 2e38 3034 3132 3232 3037 3833  l -2.80412220783
0000020: 3834 3132 3833 3535 3139 3235 652d 3032  841283551925e-02
0000030: 202b 2036 2e39 3438 3932 3238 3438 3134   + 6.94892284814
0000040: 3730 3430 3430 3831 3238 3631 652d 3031  704040812861e-01
0000050: 2069 2040 2034 2e34 3430 3839 3230 3938   i @ 4.440892098
0000060: 3530 3036 3237 3165 2d31 360a 3132 3830  5006271e-16.1280
0000070: 2037 3230 0a32 3535 0aff ffff ffff ffff   720.255........
0000080: ffff ffff ffff ffff ffff ffff ffff fefe  ................
0000090: fefc fcfc f8f8 f8e8 e8e8 4141 4140 4040  ..........AAA@@@

它是用创建的c代码:

 void record_write(FILE *out, unsigned char *buffer, int width, int height, mpfr_t centerx, mpfr_t centery, mpfr_t radius) {
  fprintf(out, "P6\n");
  mpfr_fprintf(out, "# mightymandel %Re + %Re i @ %Re\n", centerx, centery, radius);
  fprintf(out, "%d %d\n255\n", width, height);
  fflush(out);
  for (int y = height - 1; y >= 0; --y) {
    fwrite(buffer + y * width * 3, width * 3, 1, out);
  }
  fflush(out);
}

我可以将其转换为 png :

xxd X.png|head -10
0000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452  .PNG........IHDR
0000010: 0000 0500 0000 02d0 0802 0000 0137 187a  .............7.z
0000020: 9700 0000 5f74 4558 7454 6974 6c65 002d  ...._tEXtTitle.-
0000030: 322e 3830 3431 3232 3230 3738 3338 3431  2.80412220783841
0000040: 3238 3335 3531 3932 3565 2d30 3220 2b20  283551925e-02 + 
0000050: 362e 3934 3839 3232 3834 3831 3437 3034  6.94892284814704
0000060: 3034 3038 3132 3836 3165 2d30 3120 6920  040812861e-01 i 
0000070: 4020 342e 3434 3038 3932 3039 3835 3030  @ 4.440892098500
0000080: 3632 3731 652d 3136 aba5 7721 0000 0015  6271e-16..w!....
0000090: 7445 5874 536f 6674 7761 7265 006d 6967  tEXtSoftware.mig

它还包含评论,但是:

  • 它不是 exif (并且 eviv2 库不支持 ppm )。
  • Gimp 也不显示 ppm 或 png 文件的注释(为什么?)
  • 识别 -verbose X.ppm 显示评论

我应该使用什么程序从 ppm 文件中提取注释?

答案1

使用图像魔法:

identify -format "%c" X.ppm

使用头和尾(来自程序 mightymandel by克劳德·海兰-艾伦

head -n 2 1.ppm | tail -n 1

相关内容