{"id":1345,"date":"2026-09-29T15:17:06","date_gmt":"2026-09-29T06:17:06","guid":{"rendered":"https:\/\/cg-method.com\/photoshop\/?p=1345"},"modified":"2026-10-03T16:07:12","modified_gmt":"2026-10-03T07:07:12","slug":"psd-tools-composite-limits","status":"publish","type":"post","link":"https:\/\/cg-method.com\/photoshop\/psd-tools-composite-limits\/","title":{"rendered":"psd-tools\u306e\u51fa\u529b\u304cPhotoshop\u3068\u9055\u3046\u3068\u304d\uff5c\u30d7\u30ec\u30d3\u30e5\u30fc\u30fb\u518d\u5408\u6210\u30fb\u5bfe\u5fdc\u9650\u754c\u306e\u78ba\u8a8d"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">psd-tools\u306e\u51fa\u529b\u3092\u8abf\u3079\u308b\u3068\u304d\u306f\u3001PSD\u5185\u306e\u4fdd\u5b58\u6e08\u307f\u5408\u6210\u753b\u50cf\u3092\u53d6\u308a\u51fa\u3057\u305f\u306e\u304b\u3001\u30ec\u30a4\u30e4\u30fc\u304b\u3089\u518d\u5408\u6210\u3057\u305f\u306e\u304b\u3092\u5206\u3051\u307e\u3059\u3002\u4fdd\u5b58\u6e08\u307f\u753b\u50cf\u304c\u53d6\u308a\u51fa\u305b\u3066\u3082\u3001\u30ec\u30a4\u30e4\u30fc\u306e\u8868\u793a\u3092\u5909\u66f4\u3057\u305f\u7d50\u679c\u3084\u3001\u52b9\u679c\u3092\u518d\u73fe\u3057\u305f\u7d50\u679c\u307e\u3067\u78ba\u8a8d\u3057\u305f\u3053\u3068\u306b\u306f\u306a\u308a\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u521d\u306b\u4f7f\u7528\u3059\u308b\u7248\u3092\u8a18\u9332\u3057\u3001\u4ee3\u8868PSD\u3067\u4fdd\u5b58\u6e08\u307f\u753b\u50cf\u3068\u518d\u5408\u6210\u306e\u51fa\u529b\u3092\u6bd4\u8f03\u3057\u307e\u3059\u3002\u57fa\u672c\u306e\u8aad\u307f\u8fbc\u307f\u30fbPNG\u4fdd\u5b58\u30fb\u30ec\u30a4\u30e4\u30fc\u306e\u53d6\u5f97\u306f<a href=\"https:\/\/cg-method.com\/photoshop\/photoshop-psd-tools\/\">psd-tools\u306e\u4f7f\u3044\u65b9<\/a>\u3067\u8aac\u660e\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u4fdd\u5b58\u6e08\u307f\u753b\u50cf\u3068\u518d\u5408\u6210\u306e\u4f7f\u3044\u5206\u3051<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>\u547c\u3073\u51fa\u3057<\/th>\n<th>\u78ba\u8a8d\u3059\u308b\u5bfe\u8c61<\/th>\n<\/tr>\n<\/thead>\n<tbody><tr>\n<td><code>psd.topil()<\/code><\/td>\n<td>PSD\u5185\u306e\u4fdd\u5b58\u6e08\u307f\u5408\u6210\u753b\u50cf\u3092\u53d6\u308a\u51fa\u3059\u3002\u753b\u50cf\u304c\u5f97\u3089\u308c\u308b\u304b\u3001\u5bf8\u6cd5\u30fb\u8272\u30fb\u900f\u660e\u5ea6\u3092\u78ba\u8a8d\u3059\u308b<\/td>\n<\/tr>\n<tr>\n<td><code>psd.composite()<\/code><\/td>\n<td>\u4fdd\u5b58\u6e08\u307f\u753b\u50cf\u3092\u4f7f\u3046\u5834\u5408\u3068\u518d\u5408\u6210\u3059\u308b\u5834\u5408\u304c\u3042\u308b\u3002\u7d50\u679c\u3060\u3051\u3067\u7d4c\u8def\u3092\u5224\u65ad\u3057\u306a\u3044<\/td>\n<\/tr>\n<tr>\n<td><code>psd.composite(ignore_preview=True)<\/code><\/td>\n<td>\u4fdd\u5b58\u6e08\u307f\u30d7\u30ec\u30d3\u30e5\u30fc\u3092\u4f7f\u308f\u305a\u3001\u30ec\u30a4\u30e4\u30fc\u304b\u3089\u5408\u6210\u3059\u308b<\/td>\n<\/tr>\n<tr>\n<td><code>psd.composite(ignore_preview=True, force=True)<\/code><\/td>\n<td>\u518d\u5408\u6210\u3068\u30d9\u30af\u30c8\u30eb\u63cf\u753b\u3092\u660e\u793a\u3057\u3066\u6bd4\u8f03\u3059\u308b\u3002\u672a\u5bfe\u5fdc\u6a5f\u80fd\u3092\u518d\u73fe\u3067\u304d\u308b\u3068\u3044\u3046\u6307\u5b9a\u3067\u306f\u306a\u3044<\/td>\n<\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u8aad\u3093\u30601.21.0\u306e\u5b9f\u88c5\u3067\u306f\u3001<code>ignore_preview<\/code>\u3001<code>force<\/code>\u3001<code>layer_filter<\/code> \u306e\u6307\u5b9a\u3084\u3001\u6587\u66f8\u304c\u66f4\u65b0\u3055\u308c\u305f\u72b6\u614b\u306a\u3069\u3067\u3001\u4fdd\u5b58\u6e08\u307f\u753b\u50cf\u3092\u4f7f\u3046\u5206\u5c90\u304c\u5909\u308f\u308a\u307e\u3059\u3002\u73fe\u5728\u306e<a href=\"https:\/\/psd-tools.readthedocs.io\/en\/latest\/reference\/psd_tools.html\">PSDImage API<\/a>\u3068\u5b9f\u884c\u3059\u308b\u7248\u3092\u7167\u5408\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4fdd\u5b58\u6e08\u307f\u5408\u6210\u753b\u50cf\u306f\u3001PSD\u3092\u4fdd\u5b58\u3057\u305f\u6642\u70b9\u306e\u8868\u793a\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u4f7f\u3044\u307e\u3059\u3002Photoshop\u3067\u306e\u4fdd\u5b58\u8a2d\u5b9a\u3084\u3001\u5225\u306e\u30bd\u30d5\u30c8\u3067\u4f5c\u6210\u30fb\u5909\u66f4\u3057\u305fPSD\u306e\u5185\u5bb9\u306b\u3088\u3063\u3066\u6761\u4ef6\u304c\u7570\u306a\u308b\u305f\u3081\u3001\u300c\u30d7\u30ec\u30d3\u30e5\u30fc\u304c\u3042\u308c\u3070\u5fc5\u305aPhotoshop\u3068\u540c\u3058\u300d\u3068\u306f\u6271\u3044\u307e\u305b\u3093\u3002\u5225\u30bd\u30d5\u30c8\u3067\u751f\u6210\u3057\u305f\u4eca\u56de\u306e\u30b5\u30f3\u30d7\u30eb\u3067\u3082\u900f\u660e\u5ea6\u306e\u5dee\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5bfe\u5fdc\u306e\u8868\u793a\u3068\u5b9f\u969b\u306e\u63cf\u753b\u3092\u5206\u3051\u308b<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>PSD\u306e\u8981\u7d20<\/th>\n<th>\u78ba\u8a8d\u3059\u308b\u5185\u5bb9<\/th>\n<\/tr>\n<\/thead>\n<tbody><tr>\n<td>\u30d4\u30af\u30bb\u30eb\u30ec\u30a4\u30e4\u30fc\u30fb\u30b0\u30eb\u30fc\u30d7<\/td>\n<td>\u8868\u793a\u72b6\u614b\u3001\u89aa\u30b0\u30eb\u30fc\u30d7\u3001\u30de\u30b9\u30af\u3001\u63cf\u753b\u30e2\u30fc\u30c9\u3068\u5408\u6210\u7d50\u679c<\/td>\n<\/tr>\n<tr>\n<td>\u8abf\u6574\u30ec\u30a4\u30e4\u30fc<\/td>\n<td>\u5b9f\u884c\u7248\u306e\u5bfe\u5fdc\u7a2e\u985e\u3001\u8272\u30e2\u30fc\u30c9\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3068\u898b\u305f\u76ee<\/td>\n<\/tr>\n<tr>\n<td>\u30b7\u30a7\u30a4\u30d7\u30fb\u5857\u308a\u30fb\u52b9\u679c<\/td>\n<td>\u8ffd\u52a0\u4f9d\u5b58\u95a2\u4fc2\u306e\u6709\u7121\u3068\u3001\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u63cf\u753b\u306e\u7bc4\u56f2<\/td>\n<\/tr>\n<tr>\n<td>\u6587\u5b57<\/td>\n<td>\u4fdd\u5b58\u3055\u308c\u305f\u753b\u7d20\u306e\u53d6\u5f97\u3068\u3001\u6587\u5b57\u30fb\u30d5\u30a9\u30f3\u30c8\u306e\u63cf\u304d\u76f4\u3057\u3092\u533a\u5225\u3059\u308b<\/td>\n<\/tr>\n<tr>\n<td>\u30b9\u30de\u30fc\u30c8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8<\/td>\n<td>\u30ec\u30a4\u30e4\u30fc\u306e\u4fdd\u5b58\u753b\u7d20\u3068\u3001\u57cb\u3081\u8fbc\u307f\u30fb\u30ea\u30f3\u30af\u5148\u30c7\u30fc\u30bf\u306e\u53d6\u5f97\u3092\u533a\u5225\u3059\u308b<\/td>\n<\/tr>\n<tr>\n<td>CMYK\u30fb16bit\u30fb32bit<\/td>\n<td>\u540c\u3058\u6761\u4ef6\u306e\u4ee3\u8868PSD\u3067\u3001\u8272\u3068\u51fa\u529b\u306e\u5bfe\u5fdc\u3092\u500b\u5225\u306b\u78ba\u8a8d\u3059\u308b<\/td>\n<\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u516c\u5f0f\u306eFeatures\u4e00\u89a7\u306b\u306f\u975e\u5bfe\u5fdc\u3068\u66f8\u304b\u308c\u305f\u9805\u76ee\u304c\u3042\u308a\u3001Usage\u30fb\u5408\u6210API\u3067\u306f\u4e00\u90e8\u306e\u8abf\u6574\u30ec\u30a4\u30e4\u30fc\u3078\u306e\u5bfe\u5fdc\u3082\u6848\u5185\u3055\u308c\u3066\u3044\u307e\u3059\u30022026\u5e7410\u67083\u65e5\u306b\u8aad\u3093\u3060\u6587\u66f8\u9593\u3067\u3082\u8aac\u660e\u306e\u7c92\u5ea6\u304c\u4e00\u81f4\u3057\u306a\u3044\u305f\u3081\u3001\u4e00\u3064\u306e\u8868\u3060\u3051\u3067\u5408\u6210\u53ef\u5426\u3092\u6c7a\u3081\u307e\u305b\u3093\u3002<a href=\"https:\/\/psd-tools.readthedocs.io\/en\/latest\/\">\u516c\u5f0fFeatures<\/a>\u3001<a href=\"https:\/\/psd-tools.readthedocs.io\/en\/latest\/usage.html\">Usage<\/a>\u3001<a href=\"https:\/\/psd-tools.readthedocs.io\/en\/latest\/reference\/psd_tools.composite.html\">\u5408\u6210API<\/a>\u3068\u5b9f\u969b\u306e\u51fa\u529b\u3092\u7167\u5408\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f53PC\u306e1.21.0\u306b\u306f\u3001\u660e\u308b\u3055\u30fb\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u3001\u30ec\u30d9\u30eb\u3001\u30ab\u30fc\u30d6\u3001\u9732\u5149\u91cf\u3001\u53cd\u8ee2\u3001\u30dd\u30b9\u30bf\u30ea\u30bc\u30fc\u30b7\u30e7\u30f3\u30012\u968e\u8abf\u5316\u3001\u8272\u76f8\u30fb\u5f69\u5ea6\u306e\u51e6\u7406\u304c\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002\u51e6\u7406\u304c\u5b58\u5728\u3059\u308b\u3053\u3068\u3068\u3001\u305d\u306ePSD\u306e\u8272\u30e2\u30fc\u30c9\u30fb\u8a2d\u5b9a\u3067Photoshop\u3068\u4e00\u81f4\u3059\u308b\u3053\u3068\u306f\u5225\u306e\u78ba\u8a8d\u3067\u3059\u3002\u4eca\u56de\u3001\u3053\u308c\u3089\u306e\u8abf\u6574\u30ec\u30a4\u30e4\u30fc\u3092Photoshop\u3068\u6bd4\u8f03\u3059\u308b\u8a66\u9a13\u306f\u884c\u3063\u3066\u3044\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u8ffd\u52a0\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u89e3\u6c7a\u3059\u308b\u7bc4\u56f2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u30d9\u30af\u30c8\u30eb\u63cf\u753b\u306a\u3069\u306b\u5fc5\u8981\u306a\u4f9d\u5b58\u95a2\u4fc2\u3092\u8981\u6c42\u3055\u308c\u305f\u5834\u5408\u306f\u3001\u5b9f\u884c\u4e2d\u306ePython\u74b0\u5883\u3078 <code>composite<\/code> \u306e\u8ffd\u52a0\u4f9d\u5b58\u95a2\u4fc2\u3092\u5165\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"bash\"><code>python -m pip install &quot;psd-tools[composite]&quot;\n<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u516c\u5f0f\u6587\u66f8\u3067\u306faggdraw\u30fbscipy\u30fbscikit-image\u3092\u6848\u5185\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u3089\u3092\u5c0e\u5165\u3057\u3066\u8aad\u307f\u8fbc\u307f\u30a8\u30e9\u30fc\u304c\u6d88\u3048\u3066\u3082\u3001\u672a\u5bfe\u5fdc\u306e\u30ec\u30a4\u30e4\u30fc\u52b9\u679c\u3084\u30d5\u30a9\u30f3\u30c8\u63cf\u753b\u304c\u3059\u3079\u3066\u518d\u73fe\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u30a8\u30e9\u30fc\u6587\u3001Python\u3068\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u7248\u3001\u5bfe\u8c61PSD\u3092\u8a18\u9332\u3057\u3001\u51fa\u529b\u753b\u50cf\u3082\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/psd-tools.readthedocs.io\/en\/stable\/changelog.html\">\u5909\u66f4\u5c65\u6b74<\/a>\u306b\u306f\u63cf\u753b\u30fb\u30ec\u30a4\u30e4\u30fc\u72b6\u614b\u306e\u4fee\u6b63\u3082\u542b\u307e\u308c\u307e\u3059\u3002\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u524d\u5f8c\u306f\u540c\u3058PSD\u3092\u5225\u306e\u51fa\u529b\u5148\u3067\u6bd4\u8f03\u3057\u3001\u4ee5\u524d\u306e\u7d50\u679c\u3092\u4e0a\u66f8\u304d\u305b\u305a\u6b8b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u4fdd\u5b58\u6e08\u307f\u753b\u50cf\u3068\u518d\u5408\u6210\u3092\u6bd4\u8f03\u3059\u308b\u30b3\u30fc\u30c9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b21\u306e\u30b3\u30fc\u30c9\u3092 <code>compare_psd.py<\/code> \u3068\u3057\u3066\u4fdd\u5b58\u3057\u307e\u3059\u3002\u5165\u529bPSD\u306f\u66f8\u304d\u63db\u3048\u305a\u3001\u65b0\u3057\u3044\u51fa\u529b\u30d5\u30a9\u30eb\u30c0\u30fc\u3092\u4f5c\u6210\u3057\u3001\u753b\u50cf2\u70b9\u3068\u6761\u4ef6\u30fb\u7d50\u679c\u306eJSON\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002\u65e2\u306b\u3042\u308b\u30d5\u30a9\u30eb\u30c0\u30fc\u3092\u6307\u5b9a\u3057\u305f\u5834\u5408\u306f\u51e6\u7406\u3092\u6b62\u3081\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"python\"><code>&quot;&quot;&quot;Compare cached preview and recomposition; never edit input or follow external links.&quot;&quot;&quot;\nimport argparse\nimport hashlib\nimport json\nimport platform\nfrom importlib.metadata import version\nfrom pathlib import Path\nimport numpy as np\nfrom PIL import Image\nfrom psd_tools import PSDImage\n\ndef compare(source, output):\n    source = Path(source)\n    output = Path(output)\n    digest = hashlib.sha256(source.read_bytes()).hexdigest()\n    psd = PSDImage.open(source)\n    output.mkdir(parents=True, exist_ok=False)\n    report = {\n        &quot;source_sha256&quot;: digest,\n        &quot;python&quot;: platform.python_version(),\n        &quot;psd_tools&quot;: version(&quot;psd-tools&quot;),\n        &quot;pillow&quot;: version(&quot;Pillow&quot;),\n        &quot;numpy&quot;: version(&quot;numpy&quot;),\n        &quot;size&quot;: list(psd.size),\n        &quot;has_preview&quot;: psd.has_preview(),\n        &quot;layers&quot;: [],\n        &quot;results&quot;: {},\n    }\n    for layer in psd.descendants():\n        report[&quot;layers&quot;].append({\n            &quot;name&quot;: layer.name, &quot;kind&quot;: layer.kind,\n            &quot;visible&quot;: layer.is_visible(), &quot;has_effects&quot;: layer.has_effects(),\n        })\n    images = {}\n    operations = {\n        &quot;preview&quot;: lambda: psd.topil(apply_icc=True),\n        &quot;recomposed&quot;: lambda: psd.composite(ignore_preview=True, force=True, apply_icc=True),\n    }\n    for name, operation in operations.items():\n        try:\n            image = operation()\n            if image is None:\n                report[&quot;results&quot;][name] = {&quot;status&quot;: &quot;no_image&quot;}\n                continue\n            image.save(output \/ (name + &quot;.png&quot;))\n            images[name] = image.convert(&quot;RGBA&quot;)\n            report[&quot;results&quot;][name] = {&quot;status&quot;: &quot;saved&quot;, &quot;mode&quot;: image.mode, &quot;size&quot;: list(image.size)}\n        except Exception as error:\n            report[&quot;results&quot;][name] = {&quot;status&quot;: &quot;error&quot;, &quot;type&quot;: type(error).__name__, &quot;message&quot;: str(error)}\n    if len(images) == 2:\n        a, b = images[&quot;preview&quot;], images[&quot;recomposed&quot;]\n        if a.size != b.size:\n            report[&quot;comparison&quot;] = {&quot;status&quot;: &quot;size_mismatch&quot;}\n        else:\n            def on_white(image):\n                bg = Image.new(&quot;RGBA&quot;, image.size, (255, 255, 255, 255))\n                return np.asarray(Image.alpha_composite(bg, image).convert(&quot;RGB&quot;), dtype=np.int16)\n            delta = np.abs(on_white(a) - on_white(b))\n            alpha_delta = np.abs(np.asarray(a.getchannel(&quot;A&quot;), dtype=np.int16) -\n                                 np.asarray(b.getchannel(&quot;A&quot;), dtype=np.int16))\n            report[&quot;comparison&quot;] = {\n                &quot;status&quot;: &quot;compared&quot;, &quot;background&quot;: &quot;white&quot;,\n                &quot;rgb_mae_0_255&quot;: float(delta.mean()), &quot;rgb_max_0_255&quot;: int(delta.max()),\n                &quot;rgb_changed_pixel_percent&quot;: float(np.any(delta != 0, axis=2).mean() * 100),\n                &quot;alpha_mae_0_255&quot;: float(alpha_delta.mean()), &quot;alpha_max_0_255&quot;: int(alpha_delta.max()),\n            }\n    report[&quot;source_unchanged&quot;] = hashlib.sha256(source.read_bytes()).hexdigest() == digest\n    (output \/ &quot;report.json&quot;).write_text(json.dumps(report, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    return report\n\nif __name__ == &quot;__main__&quot;:\n    parser = argparse.ArgumentParser()\n    parser.add_argument(&quot;input_psd&quot;)\n    parser.add_argument(&quot;new_output_folder&quot;)\n    args = parser.parse_args()\n    report = compare(args.input_psd, args.new_output_folder)\n    print(json.dumps(report.get(&quot;comparison&quot;, {&quot;status&quot;: &quot;not_compared&quot;}), ensure_ascii=True))\n<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"bash\"><code>python compare_psd.py sample.psd compare-output-01\n<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><code>report.json<\/code> \u306e <code>results<\/code> \u306f\u3001\u753b\u50cf\u306e\u4fdd\u5b58\u30fb\u753b\u50cf\u306a\u3057\u30fb\u51e6\u7406\u30a8\u30e9\u30fc\u3092\u533a\u5225\u3057\u307e\u3059\u3002\u4e21\u753b\u50cf\u306e\u5bf8\u6cd5\u304c\u540c\u3058\u5834\u5408\u3060\u3051\u3001\u767d\u80cc\u666f\u306b\u91cd\u306d\u305fRGB\u306e\u5e73\u5747\u7d76\u5bfe\u5dee\u30fb\u6700\u5927\u5dee\u30fb\u5dee\u306e\u3042\u308b\u753b\u7d20\u5272\u5408\u3068\u3001\u30a2\u30eb\u30d5\u30a1\u306e\u5e73\u5747\u5dee\u30fb\u6700\u5927\u5dee\u3092\u8a18\u9332\u3057\u307e\u3059\u3002\u900f\u660e\u90e8\u5206\u306eRGB\u3060\u3051\u3092\u6bd4\u8f03\u3059\u308b\u3068\u3001\u898b\u3048\u306a\u3044\u753b\u7d20\u306e\u8272\u304c\u5dee\u3068\u3057\u3066\u6570\u3048\u3089\u308c\u308b\u305f\u3081\u3001\u80cc\u666f\u3068\u900f\u660e\u5ea6\u3092\u5206\u3051\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5e73\u5747\u5dee0\u306f\u3001\u3053\u306e\u6bd4\u8f03\u6761\u4ef6\u3067\u540c\u3058\u753b\u7d20\u5024\u3060\u3063\u305f\u3068\u3044\u3046\u610f\u5473\u3067\u3059\u3002Photoshop\u306e\u8868\u793a\u3068\u306e\u4e00\u81f4\u3084\u3001\u8272\u7ba1\u7406\u3092\u542b\u3080\u7d0d\u54c1\u6761\u4ef6\u3092\u4fdd\u8a3c\u3059\u308b\u6570\u5024\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u5e73\u5747\u3060\u3051\u3067\u306f\u5c0f\u3055\u3044\u9818\u57df\u306e\u5dee\u3092\u898b\u843d\u3068\u3059\u305f\u3081\u3001\u900f\u660e\u90e8\u5206\u3001\u6587\u5b57\u3001\u5f71\u3001\u5883\u754c\u7dda\u306a\u3069\u306e\u7b87\u6240\u3082\u753b\u50cf\u3067\u78ba\u8a8d\u3057\u307e\u3059\u3002\u5bf8\u6cd5\u304c\u7570\u306a\u308b\u5834\u5408\u306f\u753b\u50cf\u3092\u52dd\u624b\u306b\u62e1\u5927\u30fb\u7e2e\u5c0f\u305b\u305a\u3001\u539f\u56e0\u3092\u8abf\u3079\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u4eca\u56de\u306e\u30b5\u30f3\u30d7\u30eb\u3067\u78ba\u8a8d\u3057\u305f\u7d50\u679c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">2026\u5e7410\u67083\u65e5\u306bWindows 11\u3001Python 3.13.13\u3001psd-tools 1.21.0\u3001Pillow 12.3.0\u3001NumPy 2.5.3\u3067\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3057\u305f\u3002\u5165\u529b\u306f\u5f53\u65b9\u304cPython\u3067\u4f5c\u6210\u3057\u305fRGB\u30fb8bit\u306e\u30b5\u30f3\u30d7\u30eb\u3067\u3059\u3002Photoshop\u3067\u4f5c\u6210\u3057\u305fPSD\u3084Photoshop\u306e\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u5165\u529b<\/th><th>RGB\u5e73\u5747\u5dee<\/th><th>\u03b1\u6700\u5927\u5dee<\/th><\/tr><\/thead><tbody><tr><td>\u5358\u8272\uff0832\u00d724px\uff09<\/td><td>0<\/td><td>0<\/td><\/tr><tr><td>\u900f\u660e\u306a\u5468\u56f2\u30fb\u975e\u8868\u793a\u30b0\u30eb\u30fc\u30d7\uff08640\u00d7480px\uff09<\/td><td><span style=\"white-space:nowrap\">\u7d04221.80<\/span><\/td><td>255<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">RGB\u306e\u5e73\u5747\u5dee\u306f\u767d\u80cc\u666f\u306b\u91cd\u306d\u305f\u753b\u50cf\u306e\u5024\u3001\u03b1\u306e\u6700\u5927\u5dee\u306f\u30a2\u30eb\u30d5\u30a1\u306e\u5024\u3067\u3059\u3002\u5358\u8272\u30b5\u30f3\u30d7\u30eb\u306f\u3053\u306e\u6761\u4ef6\u3067\u4e00\u81f4\u3057\u3001\u900f\u660e\u306a\u5468\u56f2\u3092\u6301\u3064\u30b5\u30f3\u30d7\u30eb\u306f\u4fdd\u5b58\u6e08\u307f\u753b\u50cf\u304c\u4e0d\u900f\u660e\u30fb\u518d\u5408\u6210\u304c\u900f\u660e\u3067\u5dee\u304c\u51fa\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e2\u4f8b\u306f\u3001\u540c\u3058\u6bd4\u8f03\u30b3\u30fc\u30c9\u304c\u4e00\u81f4\u3068\u5dee\u3092\u533a\u5225\u3067\u304d\u308b\u304b\u3092\u78ba\u8a8d\u3057\u305f\u3082\u306e\u3067\u3059\u3002\u5165\u529b\u30cf\u30c3\u30b7\u30e5\u306e\u4e0d\u5909\u3001\u65e2\u5b58\u30d5\u30a9\u30eb\u30c0\u30fc\u3078\u306e\u51e6\u7406\u62d2\u5426\u3001\u65e2\u5b58\u30ec\u30dd\u30fc\u30c8\u306e\u4e0d\u5909\u3092\u542b\u30806\u9805\u76ee\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002\u5b9f\u753b\u50cf\u306f<a href=\"https:\/\/cg-method.com\/photoshop\/photoshop-psd-tools\/\">\u5165\u9580\u8a18\u4e8b\u306e\u5b9f\u884c\u7d50\u679c<\/a>\u306b\u3082\u63b2\u8f09\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6587\u5b57\u30fb\u8abf\u6574\u30ec\u30a4\u30e4\u30fc\u30fb\u8907\u96d1\u306a\u30de\u30b9\u30af\u3084\u52b9\u679c\u30fb\u30b9\u30de\u30fc\u30c8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30fb16\/32bit\u30fbPhotoshop\u3068\u306e\u8868\u793a\u4e00\u81f4\u306f\u4eca\u56de\u306e\u8a66\u9a13\u306b\u542b\u3081\u3066\u3044\u307e\u305b\u3093\u3002\u8a18\u4e8b\u5168\u4f53\u306e\u5bfe\u5fdc\u8868\u3092\u3053\u306e2\u4f8b\u3067\u691c\u8a3c\u3057\u305f\u3068\u306f\u3057\u3066\u3044\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b9\u30de\u30fc\u30c8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u8868\u793a\u3068\u4e2d\u8eab<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>layer.topil()<\/code> \u306a\u3069\u3067\u4fdd\u5b58\u753b\u7d20\u3092\u53d6\u308a\u51fa\u3059\u51e6\u7406\u3068\u3001<code>layer.smart_object<\/code> \u304b\u3089\u4e2d\u8eab\u306e\u30c7\u30fc\u30bf\u3092\u8aad\u3080\u51e6\u7406\u306f\u7570\u306a\u308a\u307e\u3059\u3002\u57cb\u3081\u8fbc\u307f\u306a\u3089PSD\u5185\u306b\u30c7\u30fc\u30bf\u304c\u3042\u308a\u3001\u30ea\u30f3\u30af\u306a\u3089\u5916\u90e8\u30d5\u30a1\u30a4\u30eb\u304c\u5fc5\u8981\u306b\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\u4fdd\u5b58\u753b\u7d20\u304c\u53d6\u308a\u51fa\u305b\u308b\u3060\u3051\u3067\u306f\u3001\u30ea\u30f3\u30af\u5148\u3092\u8aad\u3081\u305f\u3053\u3068\u306b\u306f\u306a\u308a\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u73fe\u5728\u306e<a href=\"https:\/\/psd-tools.readthedocs.io\/en\/latest\/reference\/psd_tools.api.smart_object.html\">SmartObject API<\/a>\u306f\u3001\u30ea\u30f3\u30af\u5148\u3092\u8aad\u3080\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u6307\u5b9a\u3082\u6848\u5185\u3057\u3066\u3044\u307e\u3059\u3002\u5f15\u6570\u3068\u30d1\u30b9\u306e\u6271\u3044\u306f\u7248\u3067\u7570\u306a\u308b\u305f\u3081\u3001\u4eca\u56de\u306e1.21.0\u3068latest\u6587\u66f8\u3092\u540c\u3058\u6761\u4ef6\u3068\u3057\u3066\u8ee2\u7528\u3057\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002\u4eca\u56de\u306e\u6bd4\u8f03\u30b3\u30fc\u30c9\u306f\u30ea\u30f3\u30af\u5148\u3092\u958b\u304d\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u904e\u53bb\u306e\u691c\u8a3c\u8a18\u9332\u3068\u4eca\u56de\u306e\u7d50\u679c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u65e7\u8a18\u4e8b\u306b\u306f\u30012026\u5e749\u670829\u65e5\u306b1.21.0\u3067\u516c\u5f0f\u30ea\u30dd\u30b8\u30c8\u30ea\u306ePSD167\u500b\u3092\u8a66\u3057\u3001\u30d7\u30ec\u30d3\u30e5\u30fc\u306a\u30579\u500b\u3001\u30b7\u30a7\u30a4\u30d7\u3092\u542b\u30807\u500b\u306e\u4f9d\u5b58\u95a2\u4fc2\u30a8\u30e9\u30fc\u306a\u3069\u3092\u78ba\u8a8d\u3057\u305f\u3068\u3044\u3046\u8a18\u9332\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u4ee5\u4e0b\u306e\u6e2c\u5b9a\u8868\u3068\u51fa\u529b\u4f8b\u306f\u3001\u305d\u306e\u904e\u53bb\u306e\u63b2\u8f09\u5185\u5bb9\u3092\u4fdd\u6301\u3057\u305f\u8cc7\u6599\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u306e\u4f5c\u696d\u30d5\u30a9\u30eb\u30c0\u30fc\u3067\u306f167\u30d5\u30a1\u30a4\u30eb\u5206\u306e\u5143\u30ed\u30b0\u30fb\u5165\u529b\u30cf\u30c3\u30b7\u30e5\u30fb\u6761\u4ef6\u3092\u53d6\u5f97\u3057\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u540c\u3058\u8a66\u9a13\u3092\u518d\u5b9f\u884c\u3057\u305f\u7d50\u679c\u3084\u3001\u73fe\u5728\u306e\u7248\u5168\u4f53\u306e\u6210\u529f\u7387\u3068\u3057\u3066\u4f7f\u3063\u3066\u3044\u307e\u305b\u3093\u3002\u904e\u53bb\u306e\u5dee\u306e\u5e73\u5747\u5024\u3068\u3001\u4eca\u56de\u306e\u767d\u80cc\u666fRGB\u30fb\u30a2\u30eb\u30d5\u30a1\u3092\u5206\u3051\u305f\u6307\u6a19\u3082\u540c\u4e00\u306e\u6e2c\u5b9a\u6761\u4ef6\u3068\u306f\u3057\u3066\u3044\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>\u904e\u53bb\u306e\u6e2c\u5b9a\u8868\u3068\u30b9\u30de\u30fc\u30c8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u8a18\u9332\u3092\u8868\u793a\uff08\u4eca\u56de\u306e\u518d\u8a66\u9a13\u3067\u306f\u3042\u308a\u307e\u305b\u3093\uff09<\/summary>\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th style=\"min-width:8em !important\">PSD \u306e\u4e2d\u8eab<\/th><th>\u8272\u306e\u5dee\u306e\u5e73\u5747<\/th><th>\u898b\u305f\u76ee<\/th><\/tr><\/thead><tbody><tr><td>\u30c8\u30fc\u30f3\u30ab\u30fc\u30d6\uff08RGB\uff09<\/td><td>0.77<\/td><td>\u307b\u307c\u540c\u3058<\/td><\/tr><tr><td>\u30ec\u30d9\u30eb\u88dc\u6b63\uff08RGB\uff09<\/td><td>0.69<\/td><td>\u307b\u307c\u540c\u3058<\/td><\/tr><tr><td>\u8272\u76f8\u30fb\u5f69\u5ea6\uff08RGB\uff09<\/td><td>0.87<\/td><td>\u307b\u307c\u540c\u3058<\/td><\/tr><tr><td>\u660e\u308b\u3055\u30fb\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\uff08RGB\uff09<\/td><td>3.08<\/td><td>\u5c11\u3057\u9055\u3046<\/td><\/tr><tr><td>2\u968e\u8abf\u5316\uff08RGB\uff09<\/td><td>0.00<\/td><td>\u540c\u3058<\/td><\/tr><tr><td>2\u968e\u8abf\u5316\uff08CMYK\uff09<\/td><td>68.73<\/td><td>\u5927\u304d\u304f\u9055\u3046<\/td><\/tr><tr><td>\u8abf\u6574\u30ec\u30a4\u30e4\u30fc16\u7a2e\u985e\uff0b\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u30fb\u30d1\u30bf\u30fc\u30f3\u306e\u52b9\u679c<\/td><td>20.92<\/td><td>\u5927\u304d\u304f\u9055\u3046<\/td><\/tr><tr><td>\u6587\u5b57\u306b10\u7a2e\u985e\u306e\u30ec\u30a4\u30e4\u30fc\u52b9\u679c\uff08\u30c9\u30ed\u30c3\u30d7\u30b7\u30e3\u30c9\u30a6\u30fb\u5149\u5f69\u30fb\u30d9\u30d9\u30eb\u306a\u3069\uff09<\/td><td>7.38<\/td><td>\u9055\u3046<\/td><\/tr><tr><td>\u30b7\u30a7\u30a4\u30d7\uff0b\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u30aa\u30fc\u30d0\u30fc\u30ec\u30a4\u30fb\u5883\u754c\u7dda<\/td><td>13.40<\/td><td>\u9055\u3046<\/td><\/tr><tr><td>\u5883\u754c\u7dda\uff08\u30b7\u30a7\u30a4\u30d7\u306a\u3057\uff09<\/td><td>0.00\u301c0.21<\/td><td>\u307b\u307c\u540c\u3058<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th style=\"min-width:8em !important\">\u30ec\u30a4\u30e4\u30fc<\/th><th>\u7a2e\u985e\uff08smart_object.kind\uff09<\/th><th>\u4e2d\u8eab\u3092\u8aad\u3081\u305f\u304b<\/th><\/tr><\/thead><tbody><tr><td>embedded-png<\/td><td>data\uff08\u57cb\u3081\u8fbc\u307f\uff09<\/td><td>\u8aad\u3081\u305f\uff0817,272 \u30d0\u30a4\u30c8\uff09<\/td><\/tr><tr><td>linked-png<\/td><td>external\uff08\u30ea\u30f3\u30af\uff09<\/td><td>FileNotFoundError<\/td><\/tr><tr><td>linked-psd<\/td><td>external\uff08\u30ea\u30f3\u30af\uff09<\/td><td>FileNotFoundError<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<\/details>\n\n\n\n<h2 class=\"wp-block-heading\">Photoshop\u3078\u623b\u3057\u3066\u78ba\u8a8d\u3059\u308b\u5834\u5408<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5408\u6210\u753b\u50cf\u3092\u53d6\u5f97\u3067\u304d\u306a\u3044\u3001\u5fc5\u8981\u306a\u52b9\u679c\u304c\u6b20\u3051\u308b\u3001\u4ee3\u8868PSD\u3067\u898b\u305f\u76ee\u304c\u5909\u308f\u308b\u5834\u5408\u306f\u3001Photoshop\u3067\u958b\u3044\u3066\u78ba\u8a8d\u3057\u307e\u3059\u3002\u5143PSD\u3092\u4fdd\u5b58\u3057\u76f4\u3059\u5fc5\u8981\u304c\u3042\u308b\u3068\u304d\u306f\u8907\u88fd\u3092\u4f7f\u3044\u3001\u4e92\u63db\u6027\u306b\u95a2\u3059\u308b\u4fdd\u5b58\u8a2d\u5b9a\u3068\u3001\u4fdd\u5b58\u5f8c\u306e\u5408\u6210\u753b\u50cf\u306e\u6709\u7121\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u4e92\u63db\u6027\u306e\u8a2d\u5b9a\u3060\u3051\u3067\u3001\u3059\u3079\u3066\u306e\u8272\u30fb\u900f\u660e\u5ea6\u30fb\u4ed6\u30bd\u30d5\u30c8\u3067\u306e\u63cf\u753b\u3092\u4fdd\u8a3c\u3059\u308b\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PSD\u3054\u3068\u306e\u5408\u6210\u753b\u50cf\u3092Photoshop\u3067\u51fa\u529b\u3059\u308b\u624b\u9806\u306f<a href=\"https:\/\/cg-method.com\/photoshop\/photoshop%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88%ef%bc%88jsx%ef%bc%89%e2%94%82%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e3%83%bc%e5%86%85%e3%81%aepsd%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%8b\/\">\u30d5\u30a9\u30eb\u30c0\u30fc\u5185PSD\u306eJPG\u30fbPNG\u51fa\u529b<\/a>\u3078\u3001\u5916\u90e8CLI\u3067\u4fdd\u5b58\u6e08\u307f\u5408\u6210\u753b\u50cf\u3092\u5909\u63db\u3059\u308b\u624b\u9806\u306f<a href=\"https:\/\/cg-method.com\/photoshop\/convert-psd-folder-png\/\">ImageMagick\u306e\u8a18\u4e8b<\/a>\u3078\u9032\u3081\u307e\u3059\u3002\u76ee\u7684\u306b\u5408\u308f\u305b\u3066\u51e6\u7406\u3092\u9078\u3073\u3001\u540c\u3058\u4ee3\u8868PSD\u3067\u51fa\u529b\u3092\u7167\u5408\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u65e7\u63b2\u8f09\u30b3\u30fc\u30c9\u306e\u6bd4\u8f03\u8cc7\u6599<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u65e7\u30b3\u30fc\u30c9\u30fb\u30b3\u30de\u30f3\u30c9\u30fb\u51fa\u529b\u4f8b\u306e\u539f\u6587\u3067\u3059\u3002\u4eca\u56de\u306e\u5b9f\u884c\u7d50\u679c\u3068\u533a\u5225\u3057\u3066\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>\u65e7\u30b3\u30fc\u30c95\u30d6\u30ed\u30c3\u30af\u3092\u8868\u793a\uff08\u539f\u6587\u30fb\u5168\u4f8b\u306e\u73fe\u884c\u7248\u52d5\u4f5c\u306f\u672a\u691c\u8a3c\uff09<\/summary>\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>ImportError: Vector shape rendering requires: aggdraw<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-powershell\"><code>pip install \"psd-tools[composite]\"<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\"><code>import sys\nfrom psd_tools import PSDImage\n# psd-tools 1.21.0 \u304c\u5408\u6210\u3067\u304d\u308b\u8abf\u6574\u30ec\u30a4\u30e4\u30fc\uff08README \u306e7\u7a2e\u985e\uff0b\u8272\u76f8\u30fb\u5f69\u5ea6\uff09\nOK_ADJ = {\"brightnesscontrast\", \"levels\", \"curves\", \"exposure\", \"invert\", \"posterize\", \"threshold\", \"huesaturation\"}\nADJ = {\"brightnesscontrast\",\"levels\",\"curves\",\"exposure\",\"invert\",\"posterize\",\"threshold\",\"huesaturation\",\"colorbalance\",\n       \"blackandwhite\",\"photofilter\",\"channelmixer\",\"colorlookup\",\"gradientmap\",\"selectivecolor\",\"vibrance\"}\nFILL_FX = {\"ColorOverlay\", \"GradientOverlay\", \"PatternOverlay\"}\n\ndef inspect(path):\n    psd = PSDImage.open(path)\n    print(f\"\u25a0 {path}  {psd.width}x{psd.height}  \u30d7\u30ec\u30d3\u30e5\u30fc\u753b\u50cf: {'\u3042\u308a' if psd.has_preview() else '\u306a\u3057'}\")\n    for layer in psd.descendants():\n        notes = []\n        if layer.kind in ADJ and layer.kind not in OK_ADJ:\n            notes.append(f\"\u8abf\u6574\u30ec\u30a4\u30e4\u30fc {layer.kind}\uff08\u5408\u6210\u306f\u672a\u5bfe\u5fdc\uff09\")\n        if layer.kind == \"type\":\n            notes.append(\"\u6587\u5b57\u30ec\u30a4\u30e4\u30fc\uff08\u30d5\u30a9\u30f3\u30c8\u306e\u63cf\u753b\u306f\u672a\u5bfe\u5fdc\uff09\")\n        if layer.kind == \"smartobject\":\n            notes.append(\"\u30b9\u30de\u30fc\u30c8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\uff08\u4e2d\u8eab\u306e\u7de8\u96c6\u306f\u672a\u5bfe\u5fdc\uff09\")\n        if layer.kind == \"shape\":\n            notes.append(\"\u30b7\u30a7\u30a4\u30d7\uff08\u63cf\u304f\u306b\u306f composite \u306e\u8ffd\u52a0\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u8981\u308b\uff09\")\n        if layer.has_effects():\n            fx = [e.__class__.__name__ for e in layer.effects if e.enabled]\n            other = [f for f in fx if f not in FILL_FX]\n            if other:\n                notes.append(\"\u30ec\u30a4\u30e4\u30fc\u52b9\u679c \" + \",\".join(other) + \"\uff08\u591a\u304f\u306f\u5408\u6210\u304c\u672a\u5bfe\u5fdc\uff09\")\n        if notes:\n            print(f\"  - {layer.name!r}: \" + \" \/ \".join(notes))\n\nfor p in sys.argv[1:]:\n    inspect(p)<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-powershell\"><code>python inspect_psd.py design.psd<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\u25a0 repo\/tests\/psd_files\/fill_adjustments.psd  256x256  \u30d7\u30ec\u30d3\u30e5\u30fc\u753b\u50cf: \u3042\u308a\n  - 'Rectangle 1': \u30b7\u30a7\u30a4\u30d7\uff08\u63cf\u304f\u306b\u306f composite \u306e\u8ffd\u52a0\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u8981\u308b\uff09\n  - 'Vibrance 1': \u8abf\u6574\u30ec\u30a4\u30e4\u30fc vibrance\uff08\u5408\u6210\u306f\u672a\u5bfe\u5fdc\uff09\n  - 'Color Balance 1': \u8abf\u6574\u30ec\u30a4\u30e4\u30fc colorbalance\uff08\u5408\u6210\u306f\u672a\u5bfe\u5fdc\uff09\n  - 'Black &amp; White 1': \u8abf\u6574\u30ec\u30a4\u30e4\u30fc blackandwhite\uff08\u5408\u6210\u306f\u672a\u5bfe\u5fdc\uff09\n  - 'Gradient Map 1': \u8abf\u6574\u30ec\u30a4\u30e4\u30fc gradientmap\uff08\u5408\u6210\u306f\u672a\u5bfe\u5fdc\uff09\n\u25a0 repo\/tests\/psd_files\/text.psd  400x400  \u30d7\u30ec\u30d3\u30e5\u30fc\u753b\u50cf: \u3042\u308a\n  - 'Line 1 Line 2 Line 3 and text': \u6587\u5b57\u30ec\u30a4\u30e4\u30fc\uff08\u30d5\u30a9\u30f3\u30c8\u306e\u63cf\u753b\u306f\u672a\u5bfe\u5fdc\uff09<\/code><\/pre><\/div>\n\n<\/details>\n","protected":false},"excerpt":{"rendered":"<p>psd-tools\u306e\u51fa\u529b\u3092\u8abf\u3079\u308b\u3068\u304d\u306f\u3001PSD\u5185\u306e\u4fdd\u5b58\u6e08\u307f\u5408\u6210\u753b\u50cf\u3092\u53d6\u308a\u51fa\u3057\u305f\u306e\u304b\u3001\u30ec\u30a4\u30e4\u30fc\u304b\u3089\u518d\u5408\u6210\u3057\u305f\u306e\u304b\u3092\u5206\u3051\u307e\u3059\u3002\u4fdd\u5b58\u6e08\u307f\u753b\u50cf\u304c\u53d6\u308a\u51fa\u305b\u3066\u3082\u3001\u30ec\u30a4\u30e4\u30fc\u306e\u8868\u793a\u3092\u5909\u66f4\u3057\u305f\u7d50\u679c\u3084\u3001\u52b9\u679c\u3092\u518d\u73fe\u3057\u305f\u7d50\u679c\u307e\u3067\u78ba\u8a8d\u3057\u305f\u3053\u3068\u306b\u306f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1346,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":"","ssp_meta_description":"psd-tools\u306e\u51fa\u529b\u304c\u9055\u3046\u539f\u56e0\u3092\u3001\u4fdd\u5b58\u6e08\u307f\u30d7\u30ec\u30d3\u30e5\u30fc\u3068\u518d\u5408\u6210\u3001\u7248\u3001\u4f9d\u5b58\u95a2\u4fc2\u3001\u8272\u3068\u900f\u660e\u5ea6\u3067\u78ba\u8a8d\u3059\u308b\u65b9\u6cd5\u3002\u6bd4\u8f03\u30b3\u30fc\u30c9\u3068\u4eca\u56de\u30fb\u904e\u53bb\u306e\u8a66\u9a13\u7bc4\u56f2\u3092\u793a\u3057\u307e\u3059\u3002","ssp_meta_title":"psd-tools\u306e\u51fa\u529b\u304cPhotoshop\u3068\u9055\u3046\u3068\u304d\uff5c\u30d7\u30ec\u30d3\u30e5\u30fc\u30fb\u518d\u5408\u6210\u30fb\u5bfe\u5fdc\u9650\u754c\u306e\u78ba\u8a8d","ssp_meta_robots":"","ssp_meta_canonical":"","ssp_meta_image":"","ssp_meta_keyword":"","book_review_data":"","footnotes":""},"categories":[10],"tags":[],"class_list":["post-1345","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-import-export"],"_links":{"self":[{"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/posts\/1345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/comments?post=1345"}],"version-history":[{"count":4,"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/posts\/1345\/revisions"}],"predecessor-version":[{"id":1425,"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/posts\/1345\/revisions\/1425"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/media\/1346"}],"wp:attachment":[{"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/media?parent=1345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/categories?post=1345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cg-method.com\/photoshop\/wp-json\/wp\/v2\/tags?post=1345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}