{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/imagemagick/feed/json -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/imagemagick", "feed_url": "https://matoken.org/blog/tag/imagemagick/feed/json", "language": "ja", "title": "Imagemagick – matoken's meme", "items": [ { "id": "https://matoken.org/blog/?p=4148", "url": "https://matoken.org/blog/2024/10/19/check-imagemagicks-built-in-images/", "title": "ImageMagick\u306e\u5185\u8535\u753b\u50cf\u3092\u78ba\u8a8d", "content_html": "
\n

\u7aef\u672b\u306e Sixel \u306e\u52d5\u4f5c\u78ba\u8a8d\u306b\u3088\u304f\u3053\u3093\u306a\u611f\u3058\u3067 ImageMagick \u5185\u8535\u306e rose: \u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
$ convert rose: - | sixelv -
\n
\n
\n
\n

\"imagemagick

\n
\n
\n

\u3053\u306e\u5185\u8535\u7d44\u307f\u8fbc\u307f\u753b\u50cf\u306f\u4ed6\u306b\u3082\u306a\u3044\u304b\u306a\u3068\u63a2\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n

\n
\n

\u691c\u7d22\u3059\u308b\u3068\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e

\n
\n
\n\n
\n
\n

Built-in image \u3068\u3044\u3046\u3088\u3046\u3067\u3059\uff0e\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u4e00\u89a7\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff0e\u5927\u6587\u5b57\u3067\u51fa\u3066\u304d\u307e\u3059\u304c\uff0c\u5927\u6587\u5b57\u3067\u3082\u5c0f\u6587\u5b57\u3067\u3082 OK \u305d\u3046\u3067\u3059\uff0e( H \u306f Built-in image \u3067\u306f\u306a\u3044\uff0e)

\n
\n
\n
\n
$ convert -list coder | grep MAGICK\nGRANITE     MAGICK\nH           MAGICK\nLOGO        MAGICK\nNETSCAPE    MAGICK\nROSE        MAGICK\nWIZARD      MAGICK
\n
\n
\n
\n
\n
$ montage -label \"%i\" -tile 3 -geometry 200 GRANITE: LOGO: NETSCAPE: ROSE: WIZARD: - | sixelv -
\n
\n
\n
\n

\"imagemagick

\n
\n
\n

rose/logo \u8fba\u308a\u304c\u899a\u3048\u3084\u3059\u304f\u3066\u3044\u3044\u3067\u3059\u306d\uff0e\u5f8c\u306f\u7528\u9014\u5225\u306b\u4f7f\u3046\u3068\u826f\u3055\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W imagemagick\nimagemagick     8:6.9.13.12+dfsg1-1+b1\n$ sixelv --version\nsixelv 3.8.1 (2024/09/21) - SIXEL viewer\n Supported loader: blurhash, libwebp, stb_image\n$ lsb_release -dr\nDescription:    Debian GNU/Linux trixie/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n", "content_text": "\u7aef\u672b\u306e Sixel \u306e\u52d5\u4f5c\u78ba\u8a8d\u306b\u3088\u304f\u3053\u3093\u306a\u611f\u3058\u3067 ImageMagick \u5185\u8535\u306e rose: \u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\uff0e\n\n\n\n$ convert rose: - | sixelv -\n\n\n\n\n\n\n\u3053\u306e\u5185\u8535\u7d44\u307f\u8fbc\u307f\u753b\u50cf\u306f\u4ed6\u306b\u3082\u306a\u3044\u304b\u306a\u3068\u63a2\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\u691c\u7d22\u3059\u308b\u3068\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e\n\n\n\n\nImageMagick \u2013 Image Formats\n\n\nconvert\u30b3\u30de\u30f3\u30c9\u306e\u4f7f\u3044\u65b9: UNIX/Linux\u306e\u90e8\u5c4b\n\n\n\n\nBuilt-in image \u3068\u3044\u3046\u3088\u3046\u3067\u3059\uff0e\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u4e00\u89a7\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff0e\u5927\u6587\u5b57\u3067\u51fa\u3066\u304d\u307e\u3059\u304c\uff0c\u5927\u6587\u5b57\u3067\u3082\u5c0f\u6587\u5b57\u3067\u3082 OK \u305d\u3046\u3067\u3059\uff0e( H \u306f Built-in image \u3067\u306f\u306a\u3044\uff0e)\n\n\n\n$ convert -list coder | grep MAGICK\nGRANITE MAGICK\nH MAGICK\nLOGO MAGICK\nNETSCAPE MAGICK\nROSE MAGICK\nWIZARD MAGICK\n\n\n\n\n$ montage -label \"%i\" -tile 3 -geometry 200 GRANITE: LOGO: NETSCAPE: ROSE: WIZARD: - | sixelv -\n\n\n\n\n\n\nrose/logo \u8fba\u308a\u304c\u899a\u3048\u3084\u3059\u304f\u3066\u3044\u3044\u3067\u3059\u306d\uff0e\u5f8c\u306f\u7528\u9014\u5225\u306b\u4f7f\u3046\u3068\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\n\n\n\u74b0\u5883\n\n$ dpkg-query -W imagemagick\nimagemagick 8:6.9.13.12+dfsg1-1+b1\n$ sixelv --version\nsixelv 3.8.1 (2024/09/21) - SIXEL viewer\n Supported loader: blurhash, libwebp, stb_image\n$ lsb_release -dr\nDescription: Debian GNU/Linux trixie/sid\nRelease: n/a\n$ arch\nx86_64", "date_published": "2024-10-19T06:07:00+09:00", "date_modified": "2024-10-19T02:12:03+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" }, "tags": [ "Imagemagick", "sixel", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=4023", "url": "https://matoken.org/blog/2024/05/09/images-to-pdf/", "title": "jpeg \u753b\u50cf\u7fa4\u3092 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db(ImageMagick, imgpdf)", "content_html": "
\n

\u5148\u65e5\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8535\u66f8\u306e\u753b\u50cf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u4f59\u767d\u3092\u30ab\u30c3\u30c8\u3057\u3066\u8aad\u307f\u3084\u3059\u304f\u3057\u307e\u3057\u305f\uff0ejpeg \u3092 zip \u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u307e\u3068\u3081\u305f\u306e\u3067\u3059\u304c\uff0cPDF \u30d5\u30a1\u30a4\u30eb\u306e\u307b\u3046\u304c\u90fd\u5408\u304c\u3044\u3044\u3053\u3068\u3082\uff0e\u3068\u3044\u3046\u3053\u3068\u3067 jpeg \u30d5\u30a1\u30a4\u30eb\u7fa4\u3092 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3057\u307e\u3057\u305f\uff0e

\n
\n
\n\n
\n

\n
\n

ImageMagick \u306e convert \u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3046\u3068\u30e1\u30e2\u30ea\u4e0d\u8db3\u3067\u5931\u6557\uff0c\u30dd\u30ea\u30b7\u30fc\u30d5\u30a1\u30a4\u30eb\u306e /etc/ImageMagick-6/policy.xml \u3067\u30e1\u30e2\u30ea\u30ea\u30bd\u30fc\u30b9\u3092 1GB \u304b\u3089 4GB \u306b\u8a2d\u5b9a\u3057\u3066\u3082\u5931\u6557\u3057\u30668GB \u306b\u8a2d\u5b9a\u3057\u3066\u3084\u3063\u3068\u51e6\u7406\u304c\u51fa\u6765\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ convert  2530201/* \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.pdf (1)\n  :\nconvert-im6.q16: cache resources exhausted `2530201/2530201-107.jpg' @ error/cache.c/OpenPixelCache/4119.\nconvert-im6.q16: TooManyExceptions (exception processing is suspended) @ warning/exception.c/ThrowException/1054.\nconvert-im6.q16: cache resources exhausted `2530201/2530201-108.jpg' @ error/cache.c/OpenPixelCache/4119.\n$ identify -list resource (2)\nResource limits:\n  Width: 32KP\n  Height: 32KP\n  List length: unlimited\n  Area: 256MP\n  Memory: 1GiB\n  Map: 2GiB\n  Disk: 2GiB\n  File: 768\n  Thread: 4\n  Throttle: 0\n  Time: unlimited\n$ identify -limit memory 4096MiB -list resource | grep ^\\ \\ Memory: (3)\n  Memory: 1GiB\n$ identify -limit memory 512MiB -list resource | grep ^\\ \\ Memory: (4)\n  Memory: 512MiB\n$ sudo git -C /etc diff /etc/ImageMagick-6/policy.xml (5)\ndiff --git a/ImageMagick-6/policy.xml b/ImageMagick-6/policy.xml\nindex 4b878ce..aa54cbe 100644\n--- a/ImageMagick-6/policy.xml\n+++ b/ImageMagick-6/policy.xml\n@@ -95,7 +95,7 @@\n   <!-- Set maximum amount of memory in bytes to allocate for the pixel cache\n        from the heap. When this limit is exceeded, the image pixels are cached\n        to memory-mapped disk. -->\n-  <policy domain=\"resource\" name=\"memory\" value=\"1024MiB\"/>\n+  <policy domain=\"resource\" name=\"memory\" value=\"4096MiB\"/>\n   <!-- Set maximum amount of memory map in bytes to allocate for the pixel\n        cache. When this limit is exceeded, the image pixels are cached to\n        disk. -->\n$ identify -list resource | grep ^\\ \\ Memory: (6)\n  Memory: 4GiB
\n
\n
\n
\n
    \n
  1. ImageMagick \u306e convert \u30b3\u30de\u30f3\u30c9\u3067 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3057\u305f\u304c\u9014\u4e2d\u3067\u5931\u6557
  2. \n
  3. ImageMagick \u306e \u30ea\u30bd\u30fc\u30b9\u3092\u78ba\u8a8d
  4. \n
  5. limit memory \u3067\u5927\u304d\u304f\u306f\u51fa\u6765\u306a\u3044
  6. \n
  7. limit memory \u3067\u5c0f\u3055\u304f\u306f\u51fa\u6765\u308b
  8. \n
  9. ImageMagick \u306e\u30dd\u30ea\u30b7\u30fc\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u3066\u30e1\u30e2\u30ea\u5229\u7528\u53ef\u80fd\u91cf\u3092\u5897\u3084\u3057\u305f
  10. \n
  11. \u30e1\u30e2\u30ea\u5229\u7528\u53ef\u80fd\u91cf\u304c\u5897\u3048\u305f\u306e\u3092\u78ba\u8a8d
  12. \n
\n
\n
\n

\u3044\u3061\u304a\u3046\u3053\u308c\u3067\u8fd4\u9084\u3067\u3057\u307e\u3057\u305f\u304c\uff0c\u3053\u306e\u30e1\u30e2\u30ea\u5229\u7528\u91cf\u3068\u5909\u63db\u6642\u9593\u306f\u5927\u304d\u3059\u304e\u308b\u306e\u3067\u4ed6\u306e\u65b9\u6cd5\u3092\u63a2\u3057\u307e\u3057\u305f\uff0e

\n
\n
\n

img2pdf \u3068\u3044\u3046\u30b3\u30de\u30f3\u30c9\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e\u3053\u306e\u30b3\u30de\u30f3\u30c9\u306f\u53ef\u80fd\u306a\u3089\u30ed\u30b9\u30ec\u30b9\u3067\u753b\u50cf\u3092 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u9ad8\u901f(\u304b\u3064\u7701\u30ea\u30bd\u30fc\u30b9\u306a\u306f\u305a)\u3067\u51e6\u7406\u3067\u304d\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n\n
\n
\n

\u5c0e\u5165\u306f\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u30d1\u30c3\u30b1\u30fc\u30b8\u304b\u3089\uff0e\u5b9f\u884c\u901f\u5ea6\u3082\u3068\u3066\u3082\u65e9\u304b\u3063\u305f\u3067\u3059\uff0e

\n
\n
\n
\n
$ sudo apt install img2pdf (1)\n$ img2pdf -o \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a-img2pdf.pdf 2530201/* (2)\nfind 2530201 -type f -print0 | sort -Vz | xargs -0 img2pdf -o \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.pdf (3)
\n
\n
\n
\n
    \n
  1. img2pdf \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5c0e\u5165
  2. \n
  3. PDF \u306b\u5909\u63db
  4. \n
  5. \u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u540d\u3067\u4e26\u3079\u66ff\u3048\u3066\u6a19\u6e96\u5165\u529b\u304b\u3089\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u30ea\u30b9\u30c8\u3092\u6e21\u3057\uff0cPDF \u30d5\u30a1\u30a4\u30eb\u306b
  6. \n
\n
\n
\n

\u5909\u63db\u6642\u9593\u306e\u6bd4\u8f03\u3067\u3059\uff0econvert \u304c\u7570\u69d8\u306b\u9045\u3044\u3067\u3059\u304c\uff0c\u3053\u308c\u306f\u30b9\u30ef\u30c3\u30d7\u3092\u4f7f\u3063\u3066\u3057\u307e\u3063\u3066\u3044\u308b\u306e\u3082\u5927\u304d\u3044\u3068\u601d\u308f\u308c\uff0c\u30e1\u30e2\u30ea\u306e\u5927\u304d\u3044\u30de\u30b7\u30f3\u3060\u3068\u3082\u3063\u3068\u65e9\u304f\u306a\u308b\u3068\u601d\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
$ time convert 2530201/* \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.pdf\n\nreal    5m18.636s\nuser    0m47.748s\nsys     0m31.136s\n$ time img2pdf -o \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a-img2pdf.pdf 2530201/*\n\nreal    0m1.279s\nuser    0m0.556s\nsys     0m0.180s
\n
\n
\n
\n

\u5b9f\u969b\u306e\u753b\u50cf\u3082\u7279\u306b\u554f\u984c\u306a\u3055\u305d\u3046\u3060\u3057\uff0c\u30d5\u30a1\u30a4\u30eb\u30b5\u30a4\u30ba\u3082\u307b\u3068\u3093\u3069\u5909\u308f\u308a\u307e\u305b\u3093\u3067\u3057\u305f\uff0e

\n
\n
\n

\u5358\u7d14\u306b\u753b\u50cf\u3092 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3059\u308b\u6642\u306f img2pdf \u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3046\u306e\u304c\u826f\u3055\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W imagemagick img2pdf\nimagemagick     8:6.9.12.98+dfsg1-5.2\nimg2pdf 0.5.1-1\n$ lsb_release -a\nNo LSB modules are available.\nDistributor ID: Debian\nDescription:    Debian GNU/Linux trixie/sid\nRelease:        n/a\nCodename:       trixie\n$ arch\nx86_64
\n
\n
\n", "content_text": "\u5148\u65e5\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8535\u66f8\u306e\u753b\u50cf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u4f59\u767d\u3092\u30ab\u30c3\u30c8\u3057\u3066\u8aad\u307f\u3084\u3059\u304f\u3057\u307e\u3057\u305f\uff0ejpeg \u3092 zip \u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u307e\u3068\u3081\u305f\u306e\u3067\u3059\u304c\uff0cPDF \u30d5\u30a1\u30a4\u30eb\u306e\u307b\u3046\u304c\u90fd\u5408\u304c\u3044\u3044\u3053\u3068\u3082\uff0e\u3068\u3044\u3046\u3053\u3068\u3067 jpeg \u30d5\u30a1\u30a4\u30eb\u7fa4\u3092 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3057\u307e\u3057\u305f\uff0e\n\n\n\n\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8535\u66f8\u306e\u753b\u50cf\u306e\u4f59\u767d\u3092\u524a\u9664\u3057\u3066\u8aad\u307f\u3084\u3059\u304f\u3059\u308b \u2013 matoken\u2019s meme\n\n\n\n\nImageMagick \u306e convert \u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3046\u3068\u30e1\u30e2\u30ea\u4e0d\u8db3\u3067\u5931\u6557\uff0c\u30dd\u30ea\u30b7\u30fc\u30d5\u30a1\u30a4\u30eb\u306e /etc/ImageMagick-6/policy.xml \u3067\u30e1\u30e2\u30ea\u30ea\u30bd\u30fc\u30b9\u3092 1GB \u304b\u3089 4GB \u306b\u8a2d\u5b9a\u3057\u3066\u3082\u5931\u6557\u3057\u30668GB \u306b\u8a2d\u5b9a\u3057\u3066\u3084\u3063\u3068\u51e6\u7406\u304c\u51fa\u6765\u307e\u3057\u305f\uff0e\n\n\n\n$ convert 2530201/* \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.pdf (1)\n :\nconvert-im6.q16: cache resources exhausted `2530201/2530201-107.jpg' @ error/cache.c/OpenPixelCache/4119.\nconvert-im6.q16: TooManyExceptions (exception processing is suspended) @ warning/exception.c/ThrowException/1054.\nconvert-im6.q16: cache resources exhausted `2530201/2530201-108.jpg' @ error/cache.c/OpenPixelCache/4119.\n$ identify -list resource (2)\nResource limits:\n Width: 32KP\n Height: 32KP\n List length: unlimited\n Area: 256MP\n Memory: 1GiB\n Map: 2GiB\n Disk: 2GiB\n File: 768\n Thread: 4\n Throttle: 0\n Time: unlimited\n$ identify -limit memory 4096MiB -list resource | grep ^\\ \\ Memory: (3)\n Memory: 1GiB\n$ identify -limit memory 512MiB -list resource | grep ^\\ \\ Memory: (4)\n Memory: 512MiB\n$ sudo git -C /etc diff /etc/ImageMagick-6/policy.xml (5)\ndiff --git a/ImageMagick-6/policy.xml b/ImageMagick-6/policy.xml\nindex 4b878ce..aa54cbe 100644\n--- a/ImageMagick-6/policy.xml\n+++ b/ImageMagick-6/policy.xml\n@@ -95,7 +95,7 @@\n <!-- Set maximum amount of memory in bytes to allocate for the pixel cache\n from the heap. When this limit is exceeded, the image pixels are cached\n to memory-mapped disk. -->\n- <policy domain=\"resource\" name=\"memory\" value=\"1024MiB\"/>\n+ <policy domain=\"resource\" name=\"memory\" value=\"4096MiB\"/>\n <!-- Set maximum amount of memory map in bytes to allocate for the pixel\n cache. When this limit is exceeded, the image pixels are cached to\n disk. -->\n$ identify -list resource | grep ^\\ \\ Memory: (6)\n Memory: 4GiB\n\n\n\n\nImageMagick \u306e convert \u30b3\u30de\u30f3\u30c9\u3067 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3057\u305f\u304c\u9014\u4e2d\u3067\u5931\u6557\nImageMagick \u306e \u30ea\u30bd\u30fc\u30b9\u3092\u78ba\u8a8d\nlimit memory \u3067\u5927\u304d\u304f\u306f\u51fa\u6765\u306a\u3044\nlimit memory \u3067\u5c0f\u3055\u304f\u306f\u51fa\u6765\u308b\nImageMagick \u306e\u30dd\u30ea\u30b7\u30fc\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u3066\u30e1\u30e2\u30ea\u5229\u7528\u53ef\u80fd\u91cf\u3092\u5897\u3084\u3057\u305f\n\u30e1\u30e2\u30ea\u5229\u7528\u53ef\u80fd\u91cf\u304c\u5897\u3048\u305f\u306e\u3092\u78ba\u8a8d\n\n\n\n\u3044\u3061\u304a\u3046\u3053\u308c\u3067\u8fd4\u9084\u3067\u3057\u307e\u3057\u305f\u304c\uff0c\u3053\u306e\u30e1\u30e2\u30ea\u5229\u7528\u91cf\u3068\u5909\u63db\u6642\u9593\u306f\u5927\u304d\u3059\u304e\u308b\u306e\u3067\u4ed6\u306e\u65b9\u6cd5\u3092\u63a2\u3057\u307e\u3057\u305f\uff0e\n\n\nimg2pdf \u3068\u3044\u3046\u30b3\u30de\u30f3\u30c9\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e\u3053\u306e\u30b3\u30de\u30f3\u30c9\u306f\u53ef\u80fd\u306a\u3089\u30ed\u30b9\u30ec\u30b9\u3067\u753b\u50cf\u3092 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u9ad8\u901f(\u304b\u3064\u7701\u30ea\u30bd\u30fc\u30b9\u306a\u306f\u305a)\u3067\u51e6\u7406\u3067\u304d\u305d\u3046\u3067\u3059\uff0e\n\n\n\njosch/img2pdf – img2pdf – Muffin Gitea\n\n\n\n\u5c0e\u5165\u306f\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u30d1\u30c3\u30b1\u30fc\u30b8\u304b\u3089\uff0e\u5b9f\u884c\u901f\u5ea6\u3082\u3068\u3066\u3082\u65e9\u304b\u3063\u305f\u3067\u3059\uff0e\n\n\n\n$ sudo apt install img2pdf (1)\n$ img2pdf -o \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a-img2pdf.pdf 2530201/* (2)\nfind 2530201 -type f -print0 | sort -Vz | xargs -0 img2pdf -o \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.pdf (3)\n\n\n\n\nimg2pdf \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5c0e\u5165\nPDF \u306b\u5909\u63db\n\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u540d\u3067\u4e26\u3079\u66ff\u3048\u3066\u6a19\u6e96\u5165\u529b\u304b\u3089\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u30ea\u30b9\u30c8\u3092\u6e21\u3057\uff0cPDF \u30d5\u30a1\u30a4\u30eb\u306b\n\n\n\n\u5909\u63db\u6642\u9593\u306e\u6bd4\u8f03\u3067\u3059\uff0econvert \u304c\u7570\u69d8\u306b\u9045\u3044\u3067\u3059\u304c\uff0c\u3053\u308c\u306f\u30b9\u30ef\u30c3\u30d7\u3092\u4f7f\u3063\u3066\u3057\u307e\u3063\u3066\u3044\u308b\u306e\u3082\u5927\u304d\u3044\u3068\u601d\u308f\u308c\uff0c\u30e1\u30e2\u30ea\u306e\u5927\u304d\u3044\u30de\u30b7\u30f3\u3060\u3068\u3082\u3063\u3068\u65e9\u304f\u306a\u308b\u3068\u601d\u3044\u307e\u3059\uff0e\n\n\n\n$ time convert 2530201/* \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.pdf\n\nreal 5m18.636s\nuser 0m47.748s\nsys 0m31.136s\n$ time img2pdf -o \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a-img2pdf.pdf 2530201/*\n\nreal 0m1.279s\nuser 0m0.556s\nsys 0m0.180s\n\n\n\n\u5b9f\u969b\u306e\u753b\u50cf\u3082\u7279\u306b\u554f\u984c\u306a\u3055\u305d\u3046\u3060\u3057\uff0c\u30d5\u30a1\u30a4\u30eb\u30b5\u30a4\u30ba\u3082\u307b\u3068\u3093\u3069\u5909\u308f\u308a\u307e\u305b\u3093\u3067\u3057\u305f\uff0e\n\n\n\u5358\u7d14\u306b\u753b\u50cf\u3092 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3059\u308b\u6642\u306f img2pdf \u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3046\u306e\u304c\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\n\n\n\u74b0\u5883\n\n$ dpkg-query -W imagemagick img2pdf\nimagemagick 8:6.9.12.98+dfsg1-5.2\nimg2pdf 0.5.1-1\n$ lsb_release -a\nNo LSB modules are available.\nDistributor ID: Debian\nDescription: Debian GNU/Linux trixie/sid\nRelease: n/a\nCodename: trixie\n$ arch\nx86_64", "date_published": "2024-05-09T19:16:12+09:00", "date_modified": "2024-05-09T19:16:14+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" }, "tags": [ "Imagemagick", "img2jpg", "pdf", "Debian", "Linux", "sid" ] }, { "id": "https://matoken.org/blog/?p=4014", "url": "https://matoken.org/blog/2024/05/02/remove-image-margins/", "title": "\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8535\u66f8\u306e\u753b\u50cf\u306e\u4f59\u767d\u3092\u524a\u9664\u3057\u3066\u8aad\u307f\u3084\u3059\u304f\u3059\u308b", "content_html": "
\n

\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8535\u66f8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30ed\u30fc\u30ab\u30eb\u3067\u8aad\u3080\u969b\u4f59\u767d\u304c\u90aa\u9b54\u306a\u306e\u3067\u6d88\u3057\u307e\u3057\u305f\uff0e

\n
\n

\n
\n\n
\n
\n

\u307e\u305a\uff0c\u5341\u5168\u306b\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u5229\u7528\u3059\u308b\u305f\u3081\u306b\u306f\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u306e\u5229\u7528\u8005\u767b\u9332\uff08\u500b\u4eba\uff09\u306e\u672c\u767b\u9332\u3092\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046\uff0e

\n
\n
\n\n
\n
\n

\u73fe\u5728\u306f\u73fe\u5730\u306b\u884c\u304b\u305a\u3068\u3082\u9060\u9694\u3067\u672c\u767b\u9332\u307e\u3067\u53ef\u80fd\u3067\u3059\uff0e\u4fbf\u5229\u306b\u306a\u308a\u307e\u3057\u305f\u306d\uff0e

\n
\n
\n

\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 \u3067\u8aad\u307f\u305f\u3044\u672c\u3092\u691c\u7d22\uff0c\u30ed\u30b0\u30a4\u30f3( \u767b\u9332\u5229\u7528\u8005ID\uff0c\u30d1\u30b9\u30ef\u30fc\u30c9 )
\n\u53f3\u4e0b\u306e\u5370\u5237\u3067\u5370\u5237\u7bc4\u56f2\u3092\u6307\u5b9a\u3057\u3066\u300c\u5370\u5237\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u300d\u3067\u8a72\u5f53\u7bc4\u56f2\u306e pdf \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\uff0c
\n\u4e0a\u90e8\u306b \u300c\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u2026\u300d \u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\uff0c\u3057\u3070\u3089\u304f\u5f85\u3064\u3068 \u300c\u5370\u5237\u7528\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002\u53f3\u306e\u30ea\u30f3\u30af\u304b\u3089PDF\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002\u300d\u306b\u5909\u308f\u308b\u306e\u3067 \u300cPDF\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u300d \u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3059\uff0e

\n
\n
\n\n\n\n\n\n\n\n
\n
Note
\n
\n
\n

50\u30b3\u30de\u3092\u8d85\u3048\u3066\u3044\u308b\u5834\u5408\u306f\u300c\u7bc4\u56f2\u3092\u6307\u5b9a\u300d\u3067 1-50 \u306e\u3088\u3046\u306b\u7bc4\u56f2\u6307\u5b9a\u3067\u304d\u308b\uff0e
\n> \u5165\u529b\u5024\u304c\u8cc7\u6599\u306e\u30b3\u30de\u6570\u3092\u8d85\u904e\u3057\u3066\u3044\u307e\u3059\u3002
\n\u3068\u306a\u3063\u305f\u3068\u304d\u6700\u5927\u30b3\u30de\u6570\u3092\u8abf\u3079\u3066\u6307\u5b9a\u3057\u306a\u304f\u3066\u3082 150- \u306e\u3088\u3046\u306b\u6307\u5b9a\u3057\u3066\u6700\u5f8c\u307e\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u308b\u3088\u3046\uff0e

\n
\n
\n
\n
\n

\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f PDF \u30d5\u30a1\u30a4\u30eb\u306f\u4e0b\u90e8\u306b \u767b\u9332\u5229\u7528\u8005ID, \u5229\u7528\u8005\u540d\uff0c\u751f\u6210\u5e74\u6708\u65e5\u6642\u5206\u79d2 \u304c\u753b\u50cf\u306b\u57cb\u3081\u8fbc\u307e\u308c\u3066\u3044\u307e\u3059\uff0e

\n
\n
\n

\"\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a\"/

\n
\n
\n

PDF \u30d5\u30a1\u30a4\u30eb\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u3057\u305f\uff0e2481 x 1732.5 pts 50\u30b3\u30de(100\u30da\u30fc\u30b8\u5206)\u306737MB\u7a0b\uff0e

\n
\n
\n
\n
$ pdfinfo digidepo_2530201_0001-001-050.pdf\nTitle:           \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a\nKeywords:        A.E.\u30f4\u30a1\u30f3\u30fb\u30f4\u30a9\u30fc\u30af\u30c8 \u8457 \u307b\u304b\u300e\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a\u300f,\u6771\u4eac\u5275\u5143\u793e,1964.2(43\u5237:1999.10). \u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 https://dl.ndl.go.jp/pid/2530201 (\u53c2\u7167 2024-05-02)\nAuthor:          A.E.\u30f4\u30a1\u30f3\u30fb\u30f4\u30a9\u30fc\u30af\u30c8 \u8457\nProducer:        PyPDF2\nCreationDate:    Thu May  2 00:30:21 2024 JST\nModDate:         Thu May  2 00:30:21 2024 JST\nCustom Metadata: no\nMetadata Stream: no\nTagged:          no\nUserProperties:  no\nSuspects:        no\nForm:            none\nJavaScript:      no\nPages:           50\nEncrypted:       yes (print:yes copy:no change:no addNotes:no algorithm:AES-256)\nPage size:       2481 x 1732.5 pts\nPage rot:        0\nFile size:       36676525 bytes\nOptimized:       no\nPDF version:     1.7
\n
\n
\n
\n

Encrypted \u3067 print:yes copy:no change:no addNotes:no \u3067\u30d1\u30b9\u30ef\u30fc\u30c9\u3082\u308f\u304b\u3089\u306a\u3044\u306e\u3067\uff0ctdftk \u306f\u4f7f\u3048\u307e\u305b\u3093\uff0e

\n
\n
\n
\n
Error: Invalid PDF: unknown.encryption.type.r\nError: Failed to open input PDF file:
\n
\n
\n
\n\n
\n
\n

print \u306f\u51fa\u6765\u308b\u306e\u3067 mcomix \u3067\u3082\u8aad\u3081\u307e\u3059\uff0e\u3068\u3044\u3046\u3053\u3068\u3067 pdfimages \u3067\u4e2d\u306e\u753b\u50cf\u306e\u53d6\u308a\u51fa\u3057\u306f\u51fa\u6765\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ pdfimages -all digidepo_2530201_0001-001-050.pdf 2530201/2530201\n$ ls 2530201/\n2530201-000.jpg  2530201-004.jpg  2530201-008.jpg  2530201-012.jpg  2530201-016.jpg  2530201-020.jpg  2530201-024.jpg  2530201-028.jpg  2530201-032.jpg  2530201-036.jpg  2530201-040.jpg  2530201-044.jpg  2530201-048.jpg\n2530201-001.jpg  2530201-005.jpg  2530201-009.jpg  2530201-013.jpg  2530201-017.jpg  2530201-021.jpg  2530201-025.jpg  2530201-029.jpg  2530201-033.jpg  2530201-037.jpg  2530201-041.jpg  2530201-045.jpg  2530201-049.jpg\n2530201-002.jpg  2530201-006.jpg  2530201-010.jpg  2530201-014.jpg  2530201-018.jpg  2530201-022.jpg  2530201-026.jpg  2530201-030.jpg  2530201-034.jpg  2530201-038.jpg  2530201-042.jpg  2530201-046.jpg\n2530201-003.jpg  2530201-007.jpg  2530201-011.jpg  2530201-015.jpg  2530201-019.jpg  2530201-023.jpg  2530201-027.jpg  2530201-031.jpg  2530201-035.jpg  2530201-039.jpg  2530201-043.jpg  2530201-047.jpg\n$ file 2530201/2530201-001.jpg\n2530201/2530201-001.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 3308x2310, components 3
\n
\n
\n
\n\n
\n
\n

\u4f59\u767d\u304c\u6c17\u306b\u306a\u308b\u306e\u3067 Imagemagick \u306e trim \u3067\u30ab\u30c3\u30c8\u3057\u307e\u3059\uff0e\u6b63\u653b\u6cd5\u3060\u3068\u5ea7\u6a19\u3092\u6307\u5b9a\u3057\u307e\u3059\u304c\uff0c\u4eca\u56de\u306f fuzz \u3067 Imagemagick \u306b\u9811\u5f35\u3063\u3066\u3082\u3089\u3044\u307e\u3059\uff0e
\nfuzz \u306e % \u306f\u753b\u50cf\u306b\u3088\u308a\u4e01\u5ea6\u3044\u3044\u5024\u3092\u63a2\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e\u4eca\u56de\u306f 60% \u3067\u826f\u3055\u305d\u3046.

\n
\n
\n
\n
$ convert 2530201/2530201-001.jpg -fuzz 60% -trim 2530201-001-trim.jpg
\n
\n
\n
\n

\"\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a

\n
\n
\n

\u4f59\u767d\u304c\u30ab\u30c3\u30c8\u3055\u308c\uff0c3308×2310 \u2192 2831×2099 \u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u3044\u3044\u611f\u3058\u305d\u3046\u306a\u306e\u3067 mogrify \u3067\u5168\u753b\u50cf\u306b\u53cd\u6620\u3057\u30661\u3064\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u307e\u3068\u3081\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ mogrify -fuzz 60% -trim 2530201/*\n$ find 2530201 | sort -V | zip -@0 ./\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.zip
\n
\n
\n
\n

50\u30b3\u30de\u4ee5\u4e0a\u306e\u8cc7\u6599\u3067\uff0c2\u3064\u4ee5\u4e0a\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u306e\u5834\u5408\u306f2\u3064\u76ee\u4ee5\u964d\u306e PDF \u3092\u540c\u69d8\u306b\u5909\u63db\u3092\u7e70\u308a\u8fd4\u3057\u3066\u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u8ffd\u52a0\u3057\u307e\u3059\uff0e\u305f\u3060\uff0c pdfimages \u3067\u751f\u6210\u3055\u308c\u308b\u30d5\u30a1\u30a4\u30eb\u540d\u304c\u88ab\u3063\u3066\u3057\u307e\u3046\u306e\u3067 rename \u30b3\u30de\u30f3\u30c9\u306a\u3069\u3067\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u5909\u66f4\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ rm 2530201/* (1)\n$ pdfimages -all ./digidepo_2530201_0001-051-100.pdf 2530201/2530201 (2)\n$ rename 's/(\\d+)-(\\d+)/sprintf \"$1-%03d\",$2 + 50/e' 2530201/* (3)\n$ mogrify -fuzz 60% -trim 2530201/* (4)\n$ find 2530201 -print | sort -V | zip -@0 ./\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.zip (5)
\n
\n
\n
\n
    \n
  1. \u53e4\u3044\u30c7\u30fc\u30bf\u3092\u524a\u9664
  2. \n
  3. PDF \u753b\u50cf\u3092\u53d6\u308a\u51fa\u3057
  4. \n
  5. \u9023\u756a\u90e8\u5206\u3092 50 \u52a0\u7b97\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u540d\u306b\u6539\u540d
  6. \n
  7. \u4f59\u767d\u524a\u9664
  8. \n
  9. \u975e\u5727\u7e2e\u3067 zip \u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u8ffd\u52a0
  10. \n
\n
\n
\n

\u30bf\u30d6\u30ec\u30c3\u30c8\u7aef\u672b\u3067 MComix \u3067\u95b2\u89a7\u3059\u308b\u3068\u3044\u3044\u611f\u3058\u305d\u3046\u3067\u3059\uff0e\u3061\u3087\u3063\u3068\u30b5\u30a4\u30ba\u304c\u5927\u304d\u3044\u306e\u3067\u7e2e\u5c0f\u3057\u305f\u308a\uff0c\u4e92\u63db\u6027\u306e\u305f\u3081\u306b PDF \u5f62\u5f0f\u306b\u3057\u305f\u308a\u3057\u3066\u3082\u826f\u3055\u305d\u3046\u3067\u3059\uff0e
\n\u30b9\u30de\u30db\u306a\u3069\u3067\u8aad\u3080\u5834\u5408\u306f\u3055\u3089\u306b\u771f\u3093\u4e2d\u304b\u30892\u5206\u5272\u3057\u305f\u3089\u826f\u3055\u305d\u3046\u3067\u3059\u304c\uff0c\u3056\u3063\u3068\u898b\u305f\u611f\u3058\u306e\u3069\u304c\u4e2d\u592e\u306b\u63c3\u3063\u3066\u3044\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u5c11\u3057\u9762\u5012\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W imagemagick zip poppler-utils rename\nimagemagick     8:6.9.12.98+dfsg1-5.2\npoppler-utils   22.12.0-2.2+b1\nrename  2.02-1\nzip     3.0-13\n$ lsb_release -a\nNo LSB modules are available.\nDistributor ID: Debian\nDescription:    Debian GNU/Linux trixie/sid\nRelease:        n/a\nCodename:       trixie\n$ arch\nx86_64
\n
\n
\n", "content_text": "\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8535\u66f8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30ed\u30fc\u30ab\u30eb\u3067\u8aad\u3080\u969b\u4f59\u767d\u304c\u90aa\u9b54\u306a\u306e\u3067\u6d88\u3057\u307e\u3057\u305f\uff0e\n\n\n\n\n\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\n\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u2015National Diet Library\n\n\n\n\u307e\u305a\uff0c\u5341\u5168\u306b\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u5229\u7528\u3059\u308b\u305f\u3081\u306b\u306f\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u306e\u5229\u7528\u8005\u767b\u9332\uff08\u500b\u4eba\uff09\u306e\u672c\u767b\u9332\u3092\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046\uff0e\n\n\n\n\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u306e\u5229\u7528\u8005\u767b\u9332\uff08\u500b\u4eba\uff09\u306b\u3064\u3044\u3066\uff5c\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u2015National Diet Library\n\n\n\n\u73fe\u5728\u306f\u73fe\u5730\u306b\u884c\u304b\u305a\u3068\u3082\u9060\u9694\u3067\u672c\u767b\u9332\u307e\u3067\u53ef\u80fd\u3067\u3059\uff0e\u4fbf\u5229\u306b\u306a\u308a\u307e\u3057\u305f\u306d\uff0e\n\n\n\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 \u3067\u8aad\u307f\u305f\u3044\u672c\u3092\u691c\u7d22\uff0c\u30ed\u30b0\u30a4\u30f3( \u767b\u9332\u5229\u7528\u8005ID\uff0c\u30d1\u30b9\u30ef\u30fc\u30c9 )\n\u53f3\u4e0b\u306e\u5370\u5237\u3067\u5370\u5237\u7bc4\u56f2\u3092\u6307\u5b9a\u3057\u3066\u300c\u5370\u5237\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u300d\u3067\u8a72\u5f53\u7bc4\u56f2\u306e pdf \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\uff0c\n\u4e0a\u90e8\u306b \u300c\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u2026\u300d \u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\uff0c\u3057\u3070\u3089\u304f\u5f85\u3064\u3068 \u300c\u5370\u5237\u7528\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002\u53f3\u306e\u30ea\u30f3\u30af\u304b\u3089PDF\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002\u300d\u306b\u5909\u308f\u308b\u306e\u3067 \u300cPDF\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u300d \u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3059\uff0e\n\n\n\n\n\n\nNote\n\n\n\n50\u30b3\u30de\u3092\u8d85\u3048\u3066\u3044\u308b\u5834\u5408\u306f\u300c\u7bc4\u56f2\u3092\u6307\u5b9a\u300d\u3067 1-50 \u306e\u3088\u3046\u306b\u7bc4\u56f2\u6307\u5b9a\u3067\u304d\u308b\uff0e\n> \u5165\u529b\u5024\u304c\u8cc7\u6599\u306e\u30b3\u30de\u6570\u3092\u8d85\u904e\u3057\u3066\u3044\u307e\u3059\u3002\n\u3068\u306a\u3063\u305f\u3068\u304d\u6700\u5927\u30b3\u30de\u6570\u3092\u8abf\u3079\u3066\u6307\u5b9a\u3057\u306a\u304f\u3066\u3082 150- \u306e\u3088\u3046\u306b\u6307\u5b9a\u3057\u3066\u6700\u5f8c\u307e\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u308b\u3088\u3046\uff0e\n\n\n\n\n\n\n\n\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f PDF \u30d5\u30a1\u30a4\u30eb\u306f\u4e0b\u90e8\u306b \u767b\u9332\u5229\u7528\u8005ID, \u5229\u7528\u8005\u540d\uff0c\u751f\u6210\u5e74\u6708\u65e5\u6642\u5206\u79d2 \u304c\u753b\u50cf\u306b\u57cb\u3081\u8fbc\u307e\u308c\u3066\u3044\u307e\u3059\uff0e\n\n\n\n\n\nPDF \u30d5\u30a1\u30a4\u30eb\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u3057\u305f\uff0e2481 x 1732.5 pts 50\u30b3\u30de(100\u30da\u30fc\u30b8\u5206)\u306737MB\u7a0b\uff0e\n\n\n\n$ pdfinfo digidepo_2530201_0001-001-050.pdf\nTitle: \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a\nKeywords: A.E.\u30f4\u30a1\u30f3\u30fb\u30f4\u30a9\u30fc\u30af\u30c8 \u8457 \u307b\u304b\u300e\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a\u300f,\u6771\u4eac\u5275\u5143\u793e,1964.2(43\u5237:1999.10). \u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 https://dl.ndl.go.jp/pid/2530201 (\u53c2\u7167 2024-05-02)\nAuthor: A.E.\u30f4\u30a1\u30f3\u30fb\u30f4\u30a9\u30fc\u30af\u30c8 \u8457\nProducer: PyPDF2\nCreationDate: Thu May 2 00:30:21 2024 JST\nModDate: Thu May 2 00:30:21 2024 JST\nCustom Metadata: no\nMetadata Stream: no\nTagged: no\nUserProperties: no\nSuspects: no\nForm: none\nJavaScript: no\nPages: 50\nEncrypted: yes (print:yes copy:no change:no addNotes:no algorithm:AES-256)\nPage size: 2481 x 1732.5 pts\nPage rot: 0\nFile size: 36676525 bytes\nOptimized: no\nPDF version: 1.7\n\n\n\nEncrypted \u3067 print:yes copy:no change:no addNotes:no \u3067\u30d1\u30b9\u30ef\u30fc\u30c9\u3082\u308f\u304b\u3089\u306a\u3044\u306e\u3067\uff0ctdftk \u306f\u4f7f\u3048\u307e\u305b\u3093\uff0e\n\n\n\nError: Invalid PDF: unknown.encryption.type.r\nError: Failed to open input PDF file:\n\n\n\n\n\u30aa\u30e9\u30a4\u30ea\u30fc\u30b8\u30e3\u30d1\u30f3\u3067\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u300cGNU Make \u7b2c3\u7248\u300d\u306epdf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u30661\u3064\u306epdf\u30d5\u30a1\u30a4\u30eb\u306b\u307e\u3068\u3081\u308b \u2013 matoken\u2019s meme\n\n\n\nprint \u306f\u51fa\u6765\u308b\u306e\u3067 mcomix \u3067\u3082\u8aad\u3081\u307e\u3059\uff0e\u3068\u3044\u3046\u3053\u3068\u3067 pdfimages \u3067\u4e2d\u306e\u753b\u50cf\u306e\u53d6\u308a\u51fa\u3057\u306f\u51fa\u6765\u307e\u3057\u305f\uff0e\n\n\n\n$ pdfimages -all digidepo_2530201_0001-001-050.pdf 2530201/2530201\n$ ls 2530201/\n2530201-000.jpg 2530201-004.jpg 2530201-008.jpg 2530201-012.jpg 2530201-016.jpg 2530201-020.jpg 2530201-024.jpg 2530201-028.jpg 2530201-032.jpg 2530201-036.jpg 2530201-040.jpg 2530201-044.jpg 2530201-048.jpg\n2530201-001.jpg 2530201-005.jpg 2530201-009.jpg 2530201-013.jpg 2530201-017.jpg 2530201-021.jpg 2530201-025.jpg 2530201-029.jpg 2530201-033.jpg 2530201-037.jpg 2530201-041.jpg 2530201-045.jpg 2530201-049.jpg\n2530201-002.jpg 2530201-006.jpg 2530201-010.jpg 2530201-014.jpg 2530201-018.jpg 2530201-022.jpg 2530201-026.jpg 2530201-030.jpg 2530201-034.jpg 2530201-038.jpg 2530201-042.jpg 2530201-046.jpg\n2530201-003.jpg 2530201-007.jpg 2530201-011.jpg 2530201-015.jpg 2530201-019.jpg 2530201-023.jpg 2530201-027.jpg 2530201-031.jpg 2530201-035.jpg 2530201-039.jpg 2530201-043.jpg 2530201-047.jpg\n$ file 2530201/2530201-001.jpg\n2530201/2530201-001.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 3308x2310, components 3\n\n\n\n\npdf\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u753b\u50cf\u3092\u629c\u304d\u51fa\u3057( pdfimages or LibreOffice ) \u2013 matoken\u2019s meme\n\n\n\n\u4f59\u767d\u304c\u6c17\u306b\u306a\u308b\u306e\u3067 Imagemagick \u306e trim \u3067\u30ab\u30c3\u30c8\u3057\u307e\u3059\uff0e\u6b63\u653b\u6cd5\u3060\u3068\u5ea7\u6a19\u3092\u6307\u5b9a\u3057\u307e\u3059\u304c\uff0c\u4eca\u56de\u306f fuzz \u3067 Imagemagick \u306b\u9811\u5f35\u3063\u3066\u3082\u3089\u3044\u307e\u3059\uff0e\nfuzz \u306e % \u306f\u753b\u50cf\u306b\u3088\u308a\u4e01\u5ea6\u3044\u3044\u5024\u3092\u63a2\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e\u4eca\u56de\u306f 60% \u3067\u826f\u3055\u305d\u3046.\n\n\n\n$ convert 2530201/2530201-001.jpg -fuzz 60% -trim 2530201-001-trim.jpg\n\n\n\n\n\n\n\u4f59\u767d\u304c\u30ab\u30c3\u30c8\u3055\u308c\uff0c3308×2310 \u2192 2831×2099 \u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u3044\u3044\u611f\u3058\u305d\u3046\u306a\u306e\u3067 mogrify \u3067\u5168\u753b\u50cf\u306b\u53cd\u6620\u3057\u30661\u3064\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u307e\u3068\u3081\u307e\u3057\u305f\uff0e\n\n\n\n$ mogrify -fuzz 60% -trim 2530201/*\n$ find 2530201 | sort -V | zip -@0 ./\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.zip\n\n\n\n50\u30b3\u30de\u4ee5\u4e0a\u306e\u8cc7\u6599\u3067\uff0c2\u3064\u4ee5\u4e0a\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u306e\u5834\u5408\u306f2\u3064\u76ee\u4ee5\u964d\u306e PDF \u3092\u540c\u69d8\u306b\u5909\u63db\u3092\u7e70\u308a\u8fd4\u3057\u3066\u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u8ffd\u52a0\u3057\u307e\u3059\uff0e\u305f\u3060\uff0c pdfimages \u3067\u751f\u6210\u3055\u308c\u308b\u30d5\u30a1\u30a4\u30eb\u540d\u304c\u88ab\u3063\u3066\u3057\u307e\u3046\u306e\u3067 rename \u30b3\u30de\u30f3\u30c9\u306a\u3069\u3067\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u5909\u66f4\u3057\u307e\u3059\uff0e\n\n\n\n$ rm 2530201/* (1)\n$ pdfimages -all ./digidepo_2530201_0001-051-100.pdf 2530201/2530201 (2)\n$ rename 's/(\\d+)-(\\d+)/sprintf \"$1-%03d\",$2 + 50/e' 2530201/* (3)\n$ mogrify -fuzz 60% -trim 2530201/* (4)\n$ find 2530201 -print | sort -V | zip -@0 ./\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.zip (5)\n\n\n\n\n\u53e4\u3044\u30c7\u30fc\u30bf\u3092\u524a\u9664\nPDF \u753b\u50cf\u3092\u53d6\u308a\u51fa\u3057\n\u9023\u756a\u90e8\u5206\u3092 50 \u52a0\u7b97\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u540d\u306b\u6539\u540d\n\u4f59\u767d\u524a\u9664\n\u975e\u5727\u7e2e\u3067 zip \u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u8ffd\u52a0\n\n\n\n\u30bf\u30d6\u30ec\u30c3\u30c8\u7aef\u672b\u3067 MComix \u3067\u95b2\u89a7\u3059\u308b\u3068\u3044\u3044\u611f\u3058\u305d\u3046\u3067\u3059\uff0e\u3061\u3087\u3063\u3068\u30b5\u30a4\u30ba\u304c\u5927\u304d\u3044\u306e\u3067\u7e2e\u5c0f\u3057\u305f\u308a\uff0c\u4e92\u63db\u6027\u306e\u305f\u3081\u306b PDF \u5f62\u5f0f\u306b\u3057\u305f\u308a\u3057\u3066\u3082\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\n\u30b9\u30de\u30db\u306a\u3069\u3067\u8aad\u3080\u5834\u5408\u306f\u3055\u3089\u306b\u771f\u3093\u4e2d\u304b\u30892\u5206\u5272\u3057\u305f\u3089\u826f\u3055\u305d\u3046\u3067\u3059\u304c\uff0c\u3056\u3063\u3068\u898b\u305f\u611f\u3058\u306e\u3069\u304c\u4e2d\u592e\u306b\u63c3\u3063\u3066\u3044\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u5c11\u3057\u9762\u5012\u305d\u3046\u3067\u3059\uff0e\n\n\n\u74b0\u5883\n\n$ dpkg-query -W imagemagick zip poppler-utils rename\nimagemagick 8:6.9.12.98+dfsg1-5.2\npoppler-utils 22.12.0-2.2+b1\nrename 2.02-1\nzip 3.0-13\n$ lsb_release -a\nNo LSB modules are available.\nDistributor ID: Debian\nDescription: Debian GNU/Linux trixie/sid\nRelease: n/a\nCodename: trixie\n$ arch\nx86_64", "date_published": "2024-05-02T19:04:08+09:00", "date_modified": "2024-05-02T19:04:22+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" }, "tags": [ "convert", "Imagemagick", "pdfimages", "trim", "\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928", "Debian", "Linux", "sid" ] }, { "id": "http://matoken.org/blog/?p=3104", "url": "https://matoken.org/blog/2021/03/16/make-the-first-page-of-the-pdf-file-jpeg-with-imagemagick/", "title": "ImageMagick\u3067pdf\u30d5\u30a1\u30a4\u30eb\u306e1\u30da\u30fc\u30b8\u76ee\u3060\u3051\u3092jpeg\u306b\u3059\u308b", "content_html": "
\n
\n
\n

ImagemMgick\u306econvert\u30b3\u30de\u30f3\u30c9\u3067pdf\u3092jpeg\u306b\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e\u3067\u3082\u3053\u308c\u306f\u898b\u899a\u3048\u306e\u3042\u308b\u30a8\u30e9\u30fc\u2026\u2026\u3069\u3053\u304b\u306b\u30e1\u30e2\u3057\u305f\u6c17\u304c\u3059\u308b\u306e\u3067\u3059\u304c\u898b\u5f53\u305f\u3089\u306a\u3044\u306e\u3067blog\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n

ImageMagick\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30dd\u30ea\u30b7\u30fc\u3092\u5909\u66f4\u3057\u3066pdf\u30d5\u30a1\u30a4\u30eb\u3092\u5909\u63db\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b

\n
\n
\n
\n
$ convert -geometry 640 /var/tmp/Nextcloud2pdf_cache/HQeSTL5TgcgAPtS.pdf[0] /tmp/HQeSTL5TgcgAPtS.jpg\nconvert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.\nconvert-im6.q16: no images defined `/tmp/HQeSTL5TgcgAPtS.jpg' @ error/convert.c/ConvertImageCommand/3258.
\n
\n
\n
\n

\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u554f\u984c\u3067ImageMagick\u306e\u8a2d\u5b9a\u3067\u7121\u52b9\u306b\u3057\u3066\u3042\u308b\u306e\u3067\u3053\u308c\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ sudo git -C /etc diff /etc/ImageMagick-6/policy.xml\ndiff --git a/ImageMagick-6/policy.xml b/ImageMagick-6/policy.xml\nindex 82a3d0b..0953557 100644\n--- a/ImageMagick-6/policy.xml\n+++ b/ImageMagick-6/policy.xml\n@@ -91,6 +91,6 @@\n   <policy domain=\"coder\" rights=\"none\" pattern=\"PS2\" />\n   <policy domain=\"coder\" rights=\"none\" pattern=\"PS3\" />\n   <policy domain=\"coder\" rights=\"none\" pattern=\"EPS\" />\n-  <policy domain=\"coder\" rights=\"none\" pattern=\"PDF\" />\n+  <policy domain=\"coder\" rights=\"read|write\" pattern=\"PDF\" />\n   <policy domain=\"coder\" rights=\"none\" pattern=\"XPS\" />\n </policymap>
\n
\n
\n
\n

\u8a2d\u5b9a\u3092\u7de8\u96c6\u5f8c\u5b9f\u884c\u3059\u308b\u3068\u3046\u307e\u304f\u52d5\u304d\u307e\u3057\u305f :)

\n
\n
\n
\n
$ convert -geometry 640 /var/tmp/Nextcloud2pdf_cache/HQeSTL5TgcgAPtS.pdf[0] /tmp/HQeSTL5TgcgAPtS.jpg
\n
\n
\n
\n
\n
\n

pdf\u30d5\u30a1\u30a4\u30eb\u306e\u6307\u5b9a\u30da\u30fc\u30b8\u3060\u3051\u3092\u5909\u63db\u3059\u308b

\n
\n
\n

\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u666e\u901a\u306b\u6307\u5b9a\u3059\u308b\u3068\uff0c \u30d5\u30a1\u30a4\u30eb\u540d-%d.jpg \u306e\u3088\u3046\u306a\u30d5\u30a1\u30a4\u30eb\u304c\u9023\u756a\u3067\u4f5c\u6210\u3055\u308c\u307e\u3059\uff0e
\n\u4eca\u56de\u306f1\u30da\u30fc\u30b8\u3081\u3060\u3051\u304c\u6b32\u3057\u3044\u306e\u3067\u4e0d\u5fc5\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u304c\u305f\u304f\u3055\u3093\u51fa\u6765\u3066\u3057\u307e\u3044\u307e\u3059\uff0e

\n
\n
\n

1\u30da\u30fc\u30b8\u3060\u3051\u304c\u6b32\u3057\u3044\u5834\u5408\uff0c \u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u540d.pdf[0] \u3068\u3044\u3046\u3088\u3046\u306b\u30da\u30fc\u30b8\u6307\u5b9a\u3057\u3066\u5b9f\u73fe\u3067\u304d\u307e\u3059\uff0e\u3053\u306e\u6dfb\u5b57\u306f1\u30da\u30fc\u30b8\u76ee\u304c0\uff0c2\u30da\u30fc\u30b8\u3081\u304c1\u306e\u3088\u3046\u306b\u6307\u5b9a\u3057\u307e\u3059\uff0e

\n
\n
\n

\u5b58\u5728\u3057\u306a\u3044\u30da\u30fc\u30b8\u756a\u53f7\u3092\u6307\u5b9a\u3059\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\uff0e

\n
\n
\n
\n
$ convert -geometry 640 /var/tmp/Nextcloud2pdf_cache/HQeSTL5TgcgAPtS.pdf[99] /tmp/HQeSTL5TgcgAPtS-99.jpg\n\nRequested FirstPage is greater than the number of pages in the file: 33\n   No pages will be processed (FirstPage > LastPage).\nconvert-im6.q16: no images defined `./HQeSTL5TgcgAPtS-1.jpg' @ error/convert.c/ConvertImageCommand/3258.
\n
\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W imagemagick\nimagemagick     8:6.9.10.23+dfsg-2.1+deb10u1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux 10 (buster)\nRelease:        10\n$ uname -m\nx86_64
\n
\n
\n
\n
\n", "content_text": "ImagemMgick\u306econvert\u30b3\u30de\u30f3\u30c9\u3067pdf\u3092jpeg\u306b\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e\u3067\u3082\u3053\u308c\u306f\u898b\u899a\u3048\u306e\u3042\u308b\u30a8\u30e9\u30fc\u2026\u2026\u3069\u3053\u304b\u306b\u30e1\u30e2\u3057\u305f\u6c17\u304c\u3059\u308b\u306e\u3067\u3059\u304c\u898b\u5f53\u305f\u3089\u306a\u3044\u306e\u3067blog\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\nImageMagick\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30dd\u30ea\u30b7\u30fc\u3092\u5909\u66f4\u3057\u3066pdf\u30d5\u30a1\u30a4\u30eb\u3092\u5909\u63db\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\n\n\n\n$ convert -geometry 640 /var/tmp/Nextcloud2pdf_cache/HQeSTL5TgcgAPtS.pdf[0] /tmp/HQeSTL5TgcgAPtS.jpg\nconvert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.\nconvert-im6.q16: no images defined `/tmp/HQeSTL5TgcgAPtS.jpg' @ error/convert.c/ConvertImageCommand/3258.\n\n\n\n\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u554f\u984c\u3067ImageMagick\u306e\u8a2d\u5b9a\u3067\u7121\u52b9\u306b\u3057\u3066\u3042\u308b\u306e\u3067\u3053\u308c\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\uff0e\n\n\n\n$ sudo git -C /etc diff /etc/ImageMagick-6/policy.xml\ndiff --git a/ImageMagick-6/policy.xml b/ImageMagick-6/policy.xml\nindex 82a3d0b..0953557 100644\n--- a/ImageMagick-6/policy.xml\n+++ b/ImageMagick-6/policy.xml\n@@ -91,6 +91,6 @@\n <policy domain=\"coder\" rights=\"none\" pattern=\"PS2\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"PS3\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"EPS\" />\n- <policy domain=\"coder\" rights=\"none\" pattern=\"PDF\" />\n+ <policy domain=\"coder\" rights=\"read|write\" pattern=\"PDF\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"XPS\" />\n </policymap>\n\n\n\n\u8a2d\u5b9a\u3092\u7de8\u96c6\u5f8c\u5b9f\u884c\u3059\u308b\u3068\u3046\u307e\u304f\u52d5\u304d\u307e\u3057\u305f :)\n\n\n\n$ convert -geometry 640 /var/tmp/Nextcloud2pdf_cache/HQeSTL5TgcgAPtS.pdf[0] /tmp/HQeSTL5TgcgAPtS.jpg\n\n\n\n\n\npdf\u30d5\u30a1\u30a4\u30eb\u306e\u6307\u5b9a\u30da\u30fc\u30b8\u3060\u3051\u3092\u5909\u63db\u3059\u308b\n\n\n\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u666e\u901a\u306b\u6307\u5b9a\u3059\u308b\u3068\uff0c \u30d5\u30a1\u30a4\u30eb\u540d-%d.jpg \u306e\u3088\u3046\u306a\u30d5\u30a1\u30a4\u30eb\u304c\u9023\u756a\u3067\u4f5c\u6210\u3055\u308c\u307e\u3059\uff0e\n\u4eca\u56de\u306f1\u30da\u30fc\u30b8\u3081\u3060\u3051\u304c\u6b32\u3057\u3044\u306e\u3067\u4e0d\u5fc5\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u304c\u305f\u304f\u3055\u3093\u51fa\u6765\u3066\u3057\u307e\u3044\u307e\u3059\uff0e\n\n\n1\u30da\u30fc\u30b8\u3060\u3051\u304c\u6b32\u3057\u3044\u5834\u5408\uff0c \u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u540d.pdf[0] \u3068\u3044\u3046\u3088\u3046\u306b\u30da\u30fc\u30b8\u6307\u5b9a\u3057\u3066\u5b9f\u73fe\u3067\u304d\u307e\u3059\uff0e\u3053\u306e\u6dfb\u5b57\u306f1\u30da\u30fc\u30b8\u76ee\u304c0\uff0c2\u30da\u30fc\u30b8\u3081\u304c1\u306e\u3088\u3046\u306b\u6307\u5b9a\u3057\u307e\u3059\uff0e\n\n\n\u5b58\u5728\u3057\u306a\u3044\u30da\u30fc\u30b8\u756a\u53f7\u3092\u6307\u5b9a\u3059\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\uff0e\n\n\n\n$ convert -geometry 640 /var/tmp/Nextcloud2pdf_cache/HQeSTL5TgcgAPtS.pdf[99] /tmp/HQeSTL5TgcgAPtS-99.jpg\n\nRequested FirstPage is greater than the number of pages in the file: 33\n No pages will be processed (FirstPage > LastPage).\nconvert-im6.q16: no images defined `./HQeSTL5TgcgAPtS-1.jpg' @ error/convert.c/ConvertImageCommand/3258.\n\n\n\n\u74b0\u5883\n\n$ dpkg-query -W imagemagick\nimagemagick 8:6.9.10.23+dfsg-2.1+deb10u1\n$ lsb_release -dr\nDescription: Debian GNU/Linux 10 (buster)\nRelease: 10\n$ uname -m\nx86_64", "date_published": "2021-03-16T23:25:28+09:00", "date_modified": "2021-03-16T23:25:28+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" }, "tags": [ "convert", "Imagemagick", "pdf", "buster", "Debian", "Linux" ] }, { "id": "http://matoken.org/blog/?p=2601", "url": "https://matoken.org/blog/2019/10/20/imagemagick-fails-due-to-lack-of-cache-resources-when-converting-images/", "title": "Imagemagick\u3067\u753b\u50cf\u5909\u63db\u6642\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u30ea\u30bd\u30fc\u30b9\u304c\u8db3\u308a\u306a\u304f\u3066\u8ee2\u3051\u308b", "content_html": "
\n

Google Photo\u306bheic\u5f62\u5f0f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3068\u300c\u9ad8\u753b\u8cea\u300d(16MP\u306b\u7e2e\u5c0f\u3055\u308c\u308b)\u8a2d\u5b9a\u3067\u3082\u7e2e\u5c0f\u3055\u308c\u306a\u3044\u3088\u3046\u306a\u306e\u3067\u3069\u306e\u304f\u3089\u3044\u306e\u30b5\u30a4\u30ba\u307e\u3067OK\u306a\u306e\u304b\u3092\u8a66\u3057\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0c\u500d\u3005\u3067\u753b\u50cf\u7d50\u5408\u3057\u3066\u3044\u305f\u3089128MP\u307b\u3069\u306e\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210\u6642\u306b\u5931\u6557\u3057\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ convert -append out.heic out.heic out128.heic\nconvert-im6.q16: cache resources exhausted `out.heic' @ error/cache.c/OpenPixelCache/4083.
\n
\n
\n
\n

\u51e6\u7406\u3057\u3066\u3044\u308b\u30d5\u30a1\u30a4\u30eb\u306f\u7121\u99c4\u306b\u3067\u304b\u3044\u3067\u3059\uff0e

\n
\n
\n
\n
$ identify ./out.heic\n./out.heic HEIC 9884x6552 9884x6552+0+0 8-bit YCbCr 0.020u 0:00.010
\n
\n
\n
\n

\u3053\u306e\u3042\u305f\u308a\u306e\u30da\u30fc\u30b8\u3092\u53c2\u8003\u306b\u30dd\u30ea\u30b7\u30fc\u30d5\u30a1\u30a4\u30eb\u3092\u4fee\u6b63\u3057\u3066\u30e1\u30e2\u30ea\u3092\u5897\u3084\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n\n
\n
\n
\n
$ sudo git -C /etc diff /etc/ImageMagick-6/policy.xml\ndiff --git a/ImageMagick-6/policy.xml b/ImageMagick-6/policy.xml\nindex 59d2fc6..4c6d088 100644\n--- a/ImageMagick-6/policy.xml\n+++ b/ImageMagick-6/policy.xml\n@@ -57,8 +57,8 @@\n   <!-- <policy domain=\"system\" name=\"memory-map\" value=\"anonymous\"/> -->\n   <!-- <policy domain=\"system\" name=\"max-memory-request\" value=\"256MiB\"/> -->\n   <!-- <policy domain=\"resource\" name=\"temporary-path\" value=\"/tmp\"/> -->\n-  <policy domain=\"resource\" name=\"memory\" value=\"256MiB\"/>\n-  <policy domain=\"resource\" name=\"map\" value=\"512MiB\"/>\n+  <policy domain=\"resource\" name=\"memory\" value=\"2048MiB\"/>\n+  <policy domain=\"resource\" name=\"map\" value=\"4096MiB\"/>\n   <policy domain=\"resource\" name=\"width\" value=\"16KP\"/>\n   <policy domain=\"resource\" name=\"height\" value=\"16KP\"/>\n   <!-- <policy domain=\"resource\" name=\"list-length\" value=\"128\"/> -->
\n
\n
\n
\n

\u3046\u307e\u304f\u884c\u304f\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f :)

\n
\n
\n
\n
$ time convert -append out.heic out.heic out128.heic; echo $?\n\nreal    2m33.128s\nuser    6m42.527s\nsys     0m4.704s\n0\n$ ls -l out128.heic\n-rw-r--r-- 1 matoken matoken 4286359 Oct 20 00:30 out128.heic\n$ identify out128.heic\nout128.heic HEIC 9884x13104 9884x13104+0+0 8-bit YCbCr 0.000u 0:00.010
\n
\n
\n
\n

\u3067\u3082\u5272\u308a\u5f53\u3066\u904e\u304e\u306a\u6c17\u3082\u3059\u308b\u306e\u3067\u3082\u5c11\u3057\u6e1b\u3089\u305d\u3046\uff0e

\n
\n
\n
\n
$ dpkg-query -W imagemagick\nimagemagick     8:6.9.10.23+dfsg-2.1+b2\n$ lsb_release -dr\nDescription:    Debian GNU/Linux bullseye/sid\nRelease:        unstable\n$ uname -m\nx86_64
\n
\n
\n", "content_text": "Google Photo\u306bheic\u5f62\u5f0f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3068\u300c\u9ad8\u753b\u8cea\u300d(16MP\u306b\u7e2e\u5c0f\u3055\u308c\u308b)\u8a2d\u5b9a\u3067\u3082\u7e2e\u5c0f\u3055\u308c\u306a\u3044\u3088\u3046\u306a\u306e\u3067\u3069\u306e\u304f\u3089\u3044\u306e\u30b5\u30a4\u30ba\u307e\u3067OK\u306a\u306e\u304b\u3092\u8a66\u3057\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0c\u500d\u3005\u3067\u753b\u50cf\u7d50\u5408\u3057\u3066\u3044\u305f\u3089128MP\u307b\u3069\u306e\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210\u6642\u306b\u5931\u6557\u3057\u307e\u3057\u305f\uff0e\n\n\n\n$ convert -append out.heic out.heic out128.heic\nconvert-im6.q16: cache resources exhausted `out.heic' @ error/cache.c/OpenPixelCache/4083.\n\n\n\n\u51e6\u7406\u3057\u3066\u3044\u308b\u30d5\u30a1\u30a4\u30eb\u306f\u7121\u99c4\u306b\u3067\u304b\u3044\u3067\u3059\uff0e\n\n\n\n$ identify ./out.heic\n./out.heic HEIC 9884x6552 9884x6552+0+0 8-bit YCbCr 0.020u 0:00.010\n\n\n\n\u3053\u306e\u3042\u305f\u308a\u306e\u30da\u30fc\u30b8\u3092\u53c2\u8003\u306b\u30dd\u30ea\u30b7\u30fc\u30d5\u30a1\u30a4\u30eb\u3092\u4fee\u6b63\u3057\u3066\u30e1\u30e2\u30ea\u3092\u5897\u3084\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\nMemory issues \u00b7 Issue #396 \u00b7 ImageMagick/ImageMagick\nImageMagick – Security Policy\n\n\n\n\n$ sudo git -C /etc diff /etc/ImageMagick-6/policy.xml\ndiff --git a/ImageMagick-6/policy.xml b/ImageMagick-6/policy.xml\nindex 59d2fc6..4c6d088 100644\n--- a/ImageMagick-6/policy.xml\n+++ b/ImageMagick-6/policy.xml\n@@ -57,8 +57,8 @@\n <!-- <policy domain=\"system\" name=\"memory-map\" value=\"anonymous\"/> -->\n <!-- <policy domain=\"system\" name=\"max-memory-request\" value=\"256MiB\"/> -->\n <!-- <policy domain=\"resource\" name=\"temporary-path\" value=\"/tmp\"/> -->\n- <policy domain=\"resource\" name=\"memory\" value=\"256MiB\"/>\n- <policy domain=\"resource\" name=\"map\" value=\"512MiB\"/>\n+ <policy domain=\"resource\" name=\"memory\" value=\"2048MiB\"/>\n+ <policy domain=\"resource\" name=\"map\" value=\"4096MiB\"/>\n <policy domain=\"resource\" name=\"width\" value=\"16KP\"/>\n <policy domain=\"resource\" name=\"height\" value=\"16KP\"/>\n <!-- <policy domain=\"resource\" name=\"list-length\" value=\"128\"/> -->\n\n\n\n\u3046\u307e\u304f\u884c\u304f\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f :)\n\n\n\n$ time convert -append out.heic out.heic out128.heic; echo $?\n\nreal 2m33.128s\nuser 6m42.527s\nsys 0m4.704s\n0\n$ ls -l out128.heic\n-rw-r--r-- 1 matoken matoken 4286359 Oct 20 00:30 out128.heic\n$ identify out128.heic\nout128.heic HEIC 9884x13104 9884x13104+0+0 8-bit YCbCr 0.000u 0:00.010\n\n\n\n\u3067\u3082\u5272\u308a\u5f53\u3066\u904e\u304e\u306a\u6c17\u3082\u3059\u308b\u306e\u3067\u3082\u5c11\u3057\u6e1b\u3089\u305d\u3046\uff0e\n\n\n\n$ dpkg-query -W imagemagick\nimagemagick 8:6.9.10.23+dfsg-2.1+b2\n$ lsb_release -dr\nDescription: Debian GNU/Linux bullseye/sid\nRelease: unstable\n$ uname -m\nx86_64", "date_published": "2019-10-20T00:40:53+09:00", "date_modified": "2019-10-20T00:40:53+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" }, "tags": [ "Imagemagick", "Debian", "Linux", "sid" ] }, { "id": "http://matoken.org/blog/?p=1993", "url": "https://matoken.org/blog/2018/07/12/mailmans-ban_list-as-image/", "title": "Mailman\u306eban_list\u3092\u753b\u50cf\u306b\u3059\u308b", "content_html": "

\u6700\u8fd1Mailman\u306bbot\u304b\u3089\u3067\u3042\u308d\u3046\u767b\u9332\u304c\u6ca2\u5c71\u3084\u3063\u3066\u304f\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u767b\u9332\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u5927\u62b5\u30e1\u30b8\u30e3\u30fc\u306a\u30d5\u30ea\u30fc\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u751f\u304d\u3066\u3044\u308b\u3088\u3046\u306a\u306e\u3067\u3059\u304c\uff0cquota\u3084\u8ee2\u9001\u91cf\u306e\u30a8\u30e9\u30fc\u3068\u306a\u3063\u3066\u5e30\u3063\u3066\u304d\u307e\u3059\uff0e\u3053\u308c\u3089\u306e\u30a8\u30e9\u30fc\u30e1\u30fc\u30eb\u3067\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u304c\u3042\u3075\u308c\u3066\u8f9b\u3044\u3067\u3059\uff0e

\n

Mailman\u306bcaptcha\u304b\u4f55\u304b\u3092\u8a2d\u7f6e\u3067\u304d\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\u3068\u304b\u7121\u3044\u304b\u306a\u3068\u63a2\u3057\u3066\u307f\u305f\u306e\u3067\u3059\u304c\uff0c\u516c\u5f0f\u3067\u306f\u306a\u3044\u3088\u3046\u3067\u3059\uff0esource\u3092\u4fee\u6b63\u3057\u3066Google\u306eReCaptcha\u3092\u5b9f\u88c5\u3057\u3066\u3044\u308b\u4eba\u306f\u5c45\u307e\u3059\u304c\uff0c\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u306e\u305f\u3073\u306b\u30d1\u30c3\u30c1\u3059\u308b\u306e\u306f\u9762\u5012\u3067\u3059\uff0e\u6700\u8fd1\u3082\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30db\u30fc\u30eb\u304c\u898b\u3064\u304b\u3063\u3066\u3044\u307e\u3059\u3057\u653e\u7f6e\u3059\u308b\u308f\u3051\u306b\u3082\u751f\u304d\u307e\u305b\u3093\uff0e

\n\n

\u8a72\u5f53\u30e1\u30fc\u30eb\u3092\u898b\u308b\u3068\u5e78\u3044\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u4f7f\u3044\u56de\u3057\u3067\u30d0\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u306f\u591a\u304f\u3042\u308a\u307e\u305b\u3093\uff0e\u3068\u308a\u3042\u3048\u305aMailman\u306eban_list\u306b\u3053\u308c\u3089\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u767b\u9332\u3057\u3066mailq\u306b\u6e9c\u307e\u3063\u3066\u3044\u308b\u8a72\u5f53\u30e1\u30fc\u30eb\u306fdrop\u3057\u307e\u3057\u305f\uff0e1\u9031\u9593\u304f\u3089\u3044\u3057\u305f\u3089\u30ea\u30e2\u30fc\u30c8\u304b\u3089\u306e\u30a8\u30e9\u30fc\u30e1\u30fc\u30eb\u3082\u7121\u304f\u306a\u3063\u3066\u9759\u304b\u306b\u306a\u308b\u3068\u826f\u3044\u306a\u3068\u601d\u3063\u3066\u3044\u307e\u3059\uff0e
\nban_list\u306b\u767b\u9332\u3057\u307e\u3057\u305f\u304c\uff0c\u3082\u3057\u304b\u3057\u305f\u3089bot\u3067\u306f\u306a\u304f\u666e\u901a\u306b\u767b\u9332\u3057\u3088\u3046\u3068\u3057\u3066\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u304c\u3042\u3075\u308c\u3066\u3044\u308b\u4eba\u3082\u5c45\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e\u305d\u308c\u304c\u89e3\u308b\u3088\u3046\u306bban_list\u3092\u7533\u3057\u8fbc\u307f\u30da\u30fc\u30b8\u306b\u8868\u793a\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\uff0e\u305d\u306e\u307e\u307e\u8868\u793a\u3059\u308b\u306e\u306f\u826f\u304f\u306a\u3044\u6c17\u304c\u3059\u308b\u306e\u3067\u753b\u50cf\u306b\u3057\u3066\u30ce\u30a4\u30ba\u3092\u6563\u3089\u3057\u3066\u6ce2\u578b\u5909\u5f62\u3092\u304b\u3051\u3066\u307f\u307e\u3057\u305f\uff0e
\nMailman\u306econfig_list\u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3092\u51fa\u529b\u3057\u3066ban_list\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3057\uff0cImagemagick\u306econvert\u30b3\u30de\u30f3\u30c9\u3067\u30ce\u30a4\u30ba\u3068\u6ce2\u578b\u5909\u5f62\u306e\u30d5\u30a3\u30eb\u30bf\u3092\u304b\u3051\u3066\u753b\u50cf\u3092\u751f\u6210\u3057\u307e\u3057\u305f\uff0e
\n\u3053\u3093\u306a\u611f\u3058\u306e\u753b\u50cf\u306b\u306a\u308a\u307e\u3059\uff0e\u3053\u308c\u3092\u7533\u3057\u8fbc\u307f\u30da\u30fc\u30b8\u306b\u8aac\u660e\u3068\u4e00\u7dd2\u306b\u8f09\u305b\u307e\u3059\uff0e(\u30ce\u30a4\u30ba\u306e\u305b\u3044\u3067\u5bb9\u91cf\u304c\u5927\u304d\u304f\u2026\u2026)

\n

\"image\"

\n

cron\u306b\u767b\u9332\u3057\u307e\u3057\u305f\uff0e

\n
$ sudo -u list crontab -l|grep ban_list
39 * * * *      /usr/lib/mailman/bin/config_list -c -o /dev/stdout users|grep ^ban_list |sed -e 's/^.*\\[\\|\\]\\|'\\''\\|'\\ '//g'|sed -e 's/\\@/ at /g'|tr -s ',' '\\n' | sort -n > /var/lib/mailman/lists/users/ban_list && convert -size 1024x600 -background '#FFFFFF' -density 36 -gravity Center -fill black -font SetoFont label:\"users ban_list `stat -c \\%y /var/lib/mailman/lists/users/ban_list|cut -f1 -d.`\\n\\n`cat /var/lib/mailman/lists/users/ban_list`\" -attenuate 5 -noise 7 +noise Gaussian -wave 15x`expr \\( 100 + $((RANDOM \\% 100)) \\)` /var/lib/mailman/archives/public/users/ban_list.jpg
\n

\u2026\u2026\u9577\u3044\u3067\u3059\u306d\uff0e\u305d\u308c\u306b\u753b\u50cf\u30b5\u30a4\u30ba\u56fa\u5b9a\u306a\u306e\u3067list\u304c\u5897\u3048\u308b\u3068\u6587\u5b57\u30b5\u30a4\u30ba\u304c\u5c0f\u3055\u304f\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059\uff0e\u3066\u3053\u3068\u3067script\u306b\uff0e

\n
#!/bin/sh
 
LISTNAME='users'
FONT='SetoFont'
BANLIST='/var/lib/mailman/lists/users/ban_list'
IMAGE='/var/lib/mailman/archives/public/users/ban_list.jpg'
 
# ban_list\u3092\u62bd\u51fa\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3057
/usr/lib/mailman/bin/config_list -c -o /dev/stdout ${LISTNAME} | grep ^ban_list | sed -e 's/^.*\\[\\|\\]\\|'\\''\\|'\\ '//g' | sed -e 's/\\@/ at /g' | tr -s ',' '\\n' | sort -n > ${BANLIST}
 
# ban_list\u306e\u884c\u6570\u306b\u3088\u3063\u3066\u753b\u50cf\u9ad8\u3055\u3092\u8a08\u7b97
BANWC=`wc -l ${BANLIST} | cut -d\\  -f1`
HIGHT=`expr \\( ${BANWC} \\* 60 + 120 \\)`
 
# \u753b\u50cf\u306b\u66f8\u304d\u51fa\u3059\u6587\u5b57\u5217\u3092\u4f5c\u6210
LABEL=\"users ban_list `stat -c \\%${BANLIST} | cut -f1 -d.`\\n\\n`cat ${BANLIST}`\"
 
# \u6ce2\u578b\u5909\u5f62\u306e\u6ce2\u306e\u6df1\u3055\u3092\u8a08\u7b97
WAVEX=`expr \\( 10 + $((RANDOM % 10)) \\)`
WAVEY=`expr \\( 100 + $((RANDOM % 100)) \\)`
 
# \u753b\u50cf\u4f5c\u6210
convert -size 1024x${HIGHT} -background '#FFFFFF' -density 36 -gravity Center -fill black -font ${FONT} label:\"${LABEL}\" -attenuate 5 -noise 7 +noise Gaussian -wave ${WAVWX}x${WAVEY} ${IMAGE}
 
\n

\u3066\u3053\u3068\u3067\u3068\u308a\u3042\u3048\u305a\u306e\u5bfe\u51e6\u7642\u6cd5\u3067\u3059\u304c\u2026\u2026\uff0e

\n

\u74b0\u5883

\n
$ lsb_release -d
Description:    Debian GNU/Linux 9.4 (stretch)
$ uname -m
x86_64
$ dpkg-query -W mailman
mailman 1:2.1.23-1+deb9u2
$ dpkg-query -W imagemagick
imagemagick     8:6.9.7.4+dfsg-11+deb9u4
\n", "content_text": "\u6700\u8fd1Mailman\u306bbot\u304b\u3089\u3067\u3042\u308d\u3046\u767b\u9332\u304c\u6ca2\u5c71\u3084\u3063\u3066\u304f\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u767b\u9332\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u5927\u62b5\u30e1\u30b8\u30e3\u30fc\u306a\u30d5\u30ea\u30fc\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u751f\u304d\u3066\u3044\u308b\u3088\u3046\u306a\u306e\u3067\u3059\u304c\uff0cquota\u3084\u8ee2\u9001\u91cf\u306e\u30a8\u30e9\u30fc\u3068\u306a\u3063\u3066\u5e30\u3063\u3066\u304d\u307e\u3059\uff0e\u3053\u308c\u3089\u306e\u30a8\u30e9\u30fc\u30e1\u30fc\u30eb\u3067\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u304c\u3042\u3075\u308c\u3066\u8f9b\u3044\u3067\u3059\uff0e\nMailman\u306bcaptcha\u304b\u4f55\u304b\u3092\u8a2d\u7f6e\u3067\u304d\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\u3068\u304b\u7121\u3044\u304b\u306a\u3068\u63a2\u3057\u3066\u307f\u305f\u306e\u3067\u3059\u304c\uff0c\u516c\u5f0f\u3067\u306f\u306a\u3044\u3088\u3046\u3067\u3059\uff0esource\u3092\u4fee\u6b63\u3057\u3066Google\u306eReCaptcha\u3092\u5b9f\u88c5\u3057\u3066\u3044\u308b\u4eba\u306f\u5c45\u307e\u3059\u304c\uff0c\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u306e\u305f\u3073\u306b\u30d1\u30c3\u30c1\u3059\u308b\u306e\u306f\u9762\u5012\u3067\u3059\uff0e\u6700\u8fd1\u3082\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30db\u30fc\u30eb\u304c\u898b\u3064\u304b\u3063\u3066\u3044\u307e\u3059\u3057\u653e\u7f6e\u3059\u308b\u308f\u3051\u306b\u3082\u751f\u304d\u307e\u305b\u3093\uff0e\n\nMailman and captcha\nCVE – CVE-2018-5950\nCVE – CVE-2018-13796\n\n\u8a72\u5f53\u30e1\u30fc\u30eb\u3092\u898b\u308b\u3068\u5e78\u3044\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u4f7f\u3044\u56de\u3057\u3067\u30d0\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u306f\u591a\u304f\u3042\u308a\u307e\u305b\u3093\uff0e\u3068\u308a\u3042\u3048\u305aMailman\u306eban_list\u306b\u3053\u308c\u3089\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u767b\u9332\u3057\u3066mailq\u306b\u6e9c\u307e\u3063\u3066\u3044\u308b\u8a72\u5f53\u30e1\u30fc\u30eb\u306fdrop\u3057\u307e\u3057\u305f\uff0e1\u9031\u9593\u304f\u3089\u3044\u3057\u305f\u3089\u30ea\u30e2\u30fc\u30c8\u304b\u3089\u306e\u30a8\u30e9\u30fc\u30e1\u30fc\u30eb\u3082\u7121\u304f\u306a\u3063\u3066\u9759\u304b\u306b\u306a\u308b\u3068\u826f\u3044\u306a\u3068\u601d\u3063\u3066\u3044\u307e\u3059\uff0e\nban_list\u306b\u767b\u9332\u3057\u307e\u3057\u305f\u304c\uff0c\u3082\u3057\u304b\u3057\u305f\u3089bot\u3067\u306f\u306a\u304f\u666e\u901a\u306b\u767b\u9332\u3057\u3088\u3046\u3068\u3057\u3066\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u304c\u3042\u3075\u308c\u3066\u3044\u308b\u4eba\u3082\u5c45\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e\u305d\u308c\u304c\u89e3\u308b\u3088\u3046\u306bban_list\u3092\u7533\u3057\u8fbc\u307f\u30da\u30fc\u30b8\u306b\u8868\u793a\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\uff0e\u305d\u306e\u307e\u307e\u8868\u793a\u3059\u308b\u306e\u306f\u826f\u304f\u306a\u3044\u6c17\u304c\u3059\u308b\u306e\u3067\u753b\u50cf\u306b\u3057\u3066\u30ce\u30a4\u30ba\u3092\u6563\u3089\u3057\u3066\u6ce2\u578b\u5909\u5f62\u3092\u304b\u3051\u3066\u307f\u307e\u3057\u305f\uff0e\nMailman\u306econfig_list\u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3092\u51fa\u529b\u3057\u3066ban_list\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3057\uff0cImagemagick\u306econvert\u30b3\u30de\u30f3\u30c9\u3067\u30ce\u30a4\u30ba\u3068\u6ce2\u578b\u5909\u5f62\u306e\u30d5\u30a3\u30eb\u30bf\u3092\u304b\u3051\u3066\u753b\u50cf\u3092\u751f\u6210\u3057\u307e\u3057\u305f\uff0e\n\u3053\u3093\u306a\u611f\u3058\u306e\u753b\u50cf\u306b\u306a\u308a\u307e\u3059\uff0e\u3053\u308c\u3092\u7533\u3057\u8fbc\u307f\u30da\u30fc\u30b8\u306b\u8aac\u660e\u3068\u4e00\u7dd2\u306b\u8f09\u305b\u307e\u3059\uff0e(\u30ce\u30a4\u30ba\u306e\u305b\u3044\u3067\u5bb9\u91cf\u304c\u5927\u304d\u304f\u2026\u2026)\n\ncron\u306b\u767b\u9332\u3057\u307e\u3057\u305f\uff0e\n$ sudo -u list crontab -l|grep ban_list39 * * * *      /usr/lib/mailman/bin/config_list -c -o /dev/stdout users|grep ^ban_list |sed -e 's/^.*\\[\\|\\]\\|'\\''\\|'\\ '//g'|sed -e 's/\\@/ at /g'|tr -s ',' '\\n' | sort -n > /var/lib/mailman/lists/users/ban_list && convert -size 1024x600 -background '#FFFFFF' -density 36 -gravity Center -fill black -font SetoFont label:\"users ban_list `stat -c \\%y /var/lib/mailman/lists/users/ban_list|cut -f1 -d.`\\n\\n`cat /var/lib/mailman/lists/users/ban_list`\" -attenuate 5 -noise 7 +noise Gaussian -wave 15x`expr \\( 100 + $((RANDOM \\% 100)) \\)` /var/lib/mailman/archives/public/users/ban_list.jpg\n\u2026\u2026\u9577\u3044\u3067\u3059\u306d\uff0e\u305d\u308c\u306b\u753b\u50cf\u30b5\u30a4\u30ba\u56fa\u5b9a\u306a\u306e\u3067list\u304c\u5897\u3048\u308b\u3068\u6587\u5b57\u30b5\u30a4\u30ba\u304c\u5c0f\u3055\u304f\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059\uff0e\u3066\u3053\u3068\u3067script\u306b\uff0e\n#!/bin/sh LISTNAME='users'FONT='SetoFont'BANLIST='/var/lib/mailman/lists/users/ban_list'IMAGE='/var/lib/mailman/archives/public/users/ban_list.jpg' # ban_list\u3092\u62bd\u51fa\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3057/usr/lib/mailman/bin/config_list -c -o /dev/stdout ${LISTNAME} | grep ^ban_list | sed -e 's/^.*\\[\\|\\]\\|'\\''\\|'\\ '//g' | sed -e 's/\\@/ at /g' | tr -s ',' '\\n' | sort -n > ${BANLIST} # ban_list\u306e\u884c\u6570\u306b\u3088\u3063\u3066\u753b\u50cf\u9ad8\u3055\u3092\u8a08\u7b97BANWC=`wc -l ${BANLIST} | cut -d\\  -f1`HIGHT=`expr \\( ${BANWC} \\* 60 + 120 \\)` # \u753b\u50cf\u306b\u66f8\u304d\u51fa\u3059\u6587\u5b57\u5217\u3092\u4f5c\u6210LABEL=\"users ban_list `stat -c \\%y ${BANLIST} | cut -f1 -d.`\\n\\n`cat ${BANLIST}`\" # \u6ce2\u578b\u5909\u5f62\u306e\u6ce2\u306e\u6df1\u3055\u3092\u8a08\u7b97WAVEX=`expr \\( 10 + $((RANDOM % 10)) \\)`WAVEY=`expr \\( 100 + $((RANDOM % 100)) \\)` # \u753b\u50cf\u4f5c\u6210convert -size 1024x${HIGHT} -background '#FFFFFF' -density 36 -gravity Center -fill black -font ${FONT} label:\"${LABEL}\" -attenuate 5 -noise 7 +noise Gaussian -wave ${WAVWX}x${WAVEY} ${IMAGE} \n\u3066\u3053\u3068\u3067\u3068\u308a\u3042\u3048\u305a\u306e\u5bfe\u51e6\u7642\u6cd5\u3067\u3059\u304c\u2026\u2026\uff0e\n\u74b0\u5883\n$ lsb_release -dDescription:    Debian GNU/Linux 9.4 (stretch)$ uname -mx86_64$ dpkg-query -W mailmanmailman 1:2.1.23-1+deb9u2$ dpkg-query -W imagemagickimagemagick     8:6.9.7.4+dfsg-11+deb9u4", "date_published": "2018-07-12T21:12:22+09:00", "date_modified": "2018-07-12T21:14:26+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" }, "tags": [ "Imagemagick", "mail", "maillist", "Mailman", "Debian", "Linux", "stretch" ] } ] }