{"id":2346,"date":"2025-07-21T13:09:17","date_gmt":"2025-07-21T04:09:17","guid":{"rendered":"https:\/\/tomato-made.com\/study\/?p=2346"},"modified":"2025-10-11T13:12:08","modified_gmt":"2025-10-11T04:12:08","slug":"t18","status":"publish","type":"post","link":"https:\/\/tomato-made.com\/study\/market-z\/t18","title":{"rendered":"\u3010PC\u7528\u3011\u6697\u3044\u5199\u771f\u3092\u660e\u308b\u304f\u898b\u3084\u3059\u304f\u88dc\u6b63\u3067\u304d\u308b\uff08\u8907\u6570\u753b\u50cf\u5bfe\u5fdc\uff09"},"content":{"rendered":"\n<p><strong><span class=\"big\"><a href=\"https:\/\/tomato-made.com\/study\/market-z\/t15\"><span class=\"sgb-label-accent-c\">\u30b9\u30de\u30db\u7528\u306f\u27a1\u300c\u3053\u3061\u3089\u300d<\/span><\/a><\/span><\/strong><\/p>\n\n\n\n<p><span class=\"keiko_yellow_full\"><strong>\u6697\u3044\u5199\u771f\u3092\u660e\u308b\u304f\u3001\u898b\u3084\u3059\u304f\u3067\u304d\u308b<\/strong><\/span>\u4fbf\u5229\u30c4\u30fc\u30eb\ud83d\udd30<\/p>\n\n\n\n<p>\u305f\u304f\u3055\u3093\u64ae\u3063\u305f\u5199\u771f\u304c\u5168\u90e8\u6697\u3044\u3068\u3001\u305d\u308c\u3092\u7de8\u96c6\u3059\u308b\u306e\u5927\u5909\u3060\u3088\u306d\ud83d\ude30<\/p>\n\n\n\n<p>\u305d\u306e\u56f0\u3063\u305f\u3092\u89e3\u6c7a\ud83d\ude06\uff01\uff01<\/p>\n\n\n\n<p><strong><span class=\"keiko_yellow_full\">\u753b\u50cf\u7de8\u96c6\u306e\u4ed5\u65b9\u306f\u300c<a href=\"https:\/\/tomato-made.com\/study\/market-z\/2#i-17\">\u3053\u3061\u3089<\/a>\u300d<\/span><\/strong><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div id=\"sgb-css-id-1\">\n<p>\u3000\ud83c\udf45\u51e6\u7406\u306b\u306f\u5c11\u3057\u6642\u9593\u304b\u304b\u308a\u307e\u3059( ^\u03c9^ )<\/p>\n<\/div>\n\n\n<div class=\"marked-slider-tool\" style=\"text-align:center; max-width:100%;\">\n\n  <style>\n    .marked-slider-tool button, .marked-slider-tool label {\n      background-color: #f36f6f;\n      color: white;\n      font-weight: bold;\n      padding: 12px 20px;\n      border: none;\n      border-radius: 6px;\n      cursor: pointer;\n      margin: 10px;\n      display: inline-block;\n      user-select: none;\n    }\n\n    .marked-slider-tool canvas {\n      max-width: 200px;\n      display: block;\n      margin: 10px auto;\n    }\n\n    .slider-wrapper {\n      width: 95%;\n      max-width: 600px;\n      margin: 20px auto;\n    }\n\n    .slider-wrapper .button-row {\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      gap: 10px;\n    }\n\n    .slider-wrapper input[type=range] {\n      width: 100%;\n      margin-top: 10px;\n      touch-action: pan-x;\n    }\n\n    .slider-marker {\n      position: absolute;\n      top: 6px;\n      left: 50%;\n      transform: translateX(-50%);\n      width: 2px;\n      height: 20px;\n      background-color: #444;\n    }\n\n    .marked-slider-tool .img-box {\n      display: inline-block;\n      margin: 10px;\n      border: 1px solid #ddd;\n      padding: 10px;\n      border-radius: 8px;\n    }\n\n    .marked-slider-tool a {\n      display: block;\n      margin-top: 5px;\n      color: #d94c72;\n      font-size: 14px;\n      text-decoration: underline;\n    }\n  <\/style>\n\n  <input type=\"file\" id=\"markedInput\" accept=\"image\/*\" multiple style=\"display:none;\">\n  <label for=\"markedInput\">\u753b\u50cf\u3092\u9078\u3076<\/label>\n\n  <div class=\"slider-wrapper\">\n    <div class=\"button-row\">\n      <button id=\"minusBtn\">\u2212<\/button>\n      <span id=\"brightnessValue\">1.200<\/span>\n      <button id=\"plusBtn\">\uff0b<\/button>\n    <\/div>\n    <input type=\"range\" id=\"markedSlider\" min=\"0.5\" max=\"2.0\" value=\"1.2\" step=\"0.005\">\n  <\/div>\n\n  <button id=\"markedDownloadAll\" style=\"display:none;\">\u4e00\u62ec\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/button>\n  <div id=\"markedOutput\"><\/div>\n\n  <script>\n    const input = document.getElementById('markedInput');\n    const slider = document.getElementById('markedSlider');\n    const container = document.getElementById('markedOutput');\n    const downloadAllBtn = document.getElementById('markedDownloadAll');\n    const brightnessValue = document.getElementById('brightnessValue');\n    const minusBtn = document.getElementById('minusBtn');\n    const plusBtn = document.getElementById('plusBtn');\n\n    let images = [];\n    let imageDataList = [];\n\n    function processImage(img, brightness, callback) {\n      const canvas = document.createElement('canvas');\n      const ctx = canvas.getContext('2d');\n      canvas.width = img.width;\n      canvas.height = img.height;\n      ctx.drawImage(img, 0, 0);\n\n      const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n      const data = imageData.data;\n\n      for (let i = 0; i < data.length; i += 4) {\n        data[i]     = Math.min(255, data[i] * brightness + 10);\n        data[i + 1] = Math.min(255, data[i + 1] * brightness + 10);\n        data[i + 2] = Math.min(255, data[i + 2] * brightness + 10);\n        const avg = (data[i] + data[i + 1] + data[i + 2]) \/ 3;\n        data[i]     += (data[i] - avg) * 0.2;\n        data[i + 1] += (data[i + 1] - avg) * 0.2;\n        data[i + 2] += (data[i + 2] - avg) * 0.2;\n      }\n\n      ctx.putImageData(imageData, 0, 0);\n      callback(canvas);\n    }\n\n    function renderAll() {\n      container.innerHTML = '';\n      imageDataList = [];\n      const brightness = parseFloat(slider.value);\n      brightnessValue.textContent = brightness.toFixed(3);\n\n      images.forEach((img, i) => {\n        processImage(img, brightness, canvas => {\n          const dataURL = canvas.toDataURL('image\/jpeg');\n          imageDataList.push({ name: `bright-${i + 1}.jpg`, data: dataURL });\n\n          const box = document.createElement('div');\n          box.className = 'img-box';\n          box.appendChild(canvas);\n\n          const link = document.createElement('a');\n          link.href = dataURL;\n          link.download = `bright-${i + 1}.jpg`;\n          link.textContent = '\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9';\n          box.appendChild(link);\n\n          container.appendChild(box);\n        });\n      });\n\n      downloadAllBtn.style.display = images.length > 0 ? 'inline-block' : 'none';\n    }\n\n    input.addEventListener('change', function () {\n      const files = Array.from(this.files);\n      images = [];\n\n      files.forEach(file => {\n        const reader = new FileReader();\n        reader.onload = e => {\n          const img = new Image();\n          img.onload = () => {\n            images.push(img);\n            if (images.length === files.length) {\n              renderAll();\n            }\n          };\n          img.src = e.target.result;\n        };\n        reader.readAsDataURL(file);\n      });\n    });\n\n    slider.addEventListener('input', renderAll);\n\n    downloadAllBtn.addEventListener('click', () => {\n      imageDataList.forEach(img => {\n        const a = document.createElement('a');\n        a.href = img.data;\n        a.download = img.name;\n        document.body.appendChild(a);\n        a.click();\n        document.body.removeChild(a);\n      });\n    });\n\n    function longPress(button, delta) {\n      let interval;\n      const step = () => {\n        let val = parseFloat(slider.value) + delta;\n        val = Math.min(2.0, Math.max(0.5, val));\n        slider.value = val.toFixed(3);\n        renderAll();\n      };\n      button.addEventListener('mousedown', () => {\n        step();\n        interval = setInterval(step, 50);\n      });\n      button.addEventListener('mouseup', () => clearInterval(interval));\n      button.addEventListener('mouseleave', () => clearInterval(interval));\n      button.addEventListener('touchstart', (e) => {\n        e.preventDefault();\n        step();\n        interval = setInterval(step, 50);\n      });\n      button.addEventListener('touchend', () => clearInterval(interval));\n      button.addEventListener('touchcancel', () => clearInterval(interval));\n    }\n\n    longPress(minusBtn, -0.005);\n    longPress(plusBtn, 0.005);\n  <\/script>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"769\" height=\"234\" src=\"https:\/\/tomato-made.com\/study\/wp-content\/uploads\/2025\/05\/\u6697\u3044\u5199\u771f\u3092\u660e\u308b\u304f\u898b\u3084\u3059\u304f\u88dc\u6b63\u3067\u304d\u308b\u30c4\u30fc\u30eb\uff08\u8907\u6570\u753b\u50cf\u5bfe\u5fdc-2.png\" alt=\"\" class=\"wp-image-1467\" style=\"width:500px\" srcset=\"https:\/\/tomato-made.com\/study\/wp-content\/uploads\/2025\/05\/\u6697\u3044\u5199\u771f\u3092\u660e\u308b\u304f\u898b\u3084\u3059\u304f\u88dc\u6b63\u3067\u304d\u308b\u30c4\u30fc\u30eb\uff08\u8907\u6570\u753b\u50cf\u5bfe\u5fdc-2.png 769w, https:\/\/tomato-made.com\/study\/wp-content\/uploads\/2025\/05\/\u6697\u3044\u5199\u771f\u3092\u660e\u308b\u304f\u898b\u3084\u3059\u304f\u88dc\u6b63\u3067\u304d\u308b\u30c4\u30fc\u30eb\uff08\u8907\u6570\u753b\u50cf\u5bfe\u5fdc-2-300x91.png 300w\" sizes=\"(max-width: 769px) 100vw, 769px\"><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div id=\"addToHomeBox\" style=\"margin: 30px 0;\">\n  <button onclick=\"showGuide()\" style=\"width: 100%; padding: 15px; font-weight: bold; background-color: #f781813d; color: #f28282; border: none; border-radius: 10px; font-size: 16px;\">\n    \u30db\u30fc\u30e0\u753b\u9762\u306b\u8ffd\u52a0\n  <\/button>\n  <p id=\"guideText\" style=\"margin-top: 15px; font-size: 15px; line-height: 1.8; display: none;\"><\/p>\n<\/div>\n\n<script>\n  function showGuide() {\n    const ua = window.navigator.userAgent.toLowerCase();\n    const guide = document.getElementById('guideText');\n    guide.style.display = 'block';\n\n    if (ua.includes('iphone') || ua.includes('ipad')) {\n      guide.innerHTML = `\n        Safari\u306e\u300c\u5171\u6709\u300d\u30dc\u30bf\u30f3\uff08\u25a1\u306b\u2191\uff09\u3092\u30bf\u30c3\u30d7\u3059\u308b\u3002<br>\n        \u3000\u3000\u21e9<br>\n        \u300c\u30db\u30fc\u30e0\u753b\u9762\u306b\u8ffd\u52a0\u300d\u3092\u9078\u3076\u3002\n      `;\n    } else if (ua.includes('android')) {\n      guide.innerHTML = `\n        \u53f3\u4e0a\u306e\u30e1\u30cb\u30e5\u30fc\uff08\ufe19\uff09\u3092\u30bf\u30c3\u30d7\u3059\u308b\u3002<br>\n        \u3000\u3000\u21e9<br>\n        \u300c\u30db\u30fc\u30e0\u753b\u9762\u306b\u8ffd\u52a0\u300d\u3092\u9078\u3076\u3002\n      `;\n    } else if (ua.includes('windows') || ua.includes('macintosh')) {\n      guide.innerHTML = `\n        Chrome\u3067\u8868\u793a\u3055\u308c\u308b\u53f3\u4e0a\u306e\u30e1\u30cb\u30e5\u30fc\uff08\ufe19\uff09\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3002<br>\n        \u3000\u3000\u21e9<br>\n        \u300c\u30ad\u30e3\u30b9\u30c8\u30fb\u5171\u6709\u30fb\u4fdd\u5b58\u300d\u27a1\u300c\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u4f5c\u6210\u2026\u300d\n      `;\n    } else {\n      guide.innerHTML = `\n        \u30d6\u30e9\u30a6\u30b6\u306e\u30e1\u30cb\u30e5\u30fc\u304b\u3089\u300c\u30db\u30fc\u30e0\u753b\u9762\u306b\u8ffd\u52a0\u300d\u307e\u305f\u306f\u300c\u3053\u306e\u30b5\u30a4\u30c8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u300d\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\n      `;\n    }\n  }\n<\/script>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n<p><div id=\"sgb-css-id-3\" >\n<\/p><p><\/p>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div id=\"sgb-css-id-2\" style=\"--sgb--custom--bg-color: var(--sgb-main-color);--sgb--custom--text-color: #ffffff;--sgb--custom--text-after: '\u7d9a\u304d\u3092\u8aad\u3080';--sgb--custom--text-after-radius: 4;\"><a class=\"linkto table\" href=\"https:\/\/tomato-made.com\/study\/market-z\/5\"> <span class=\"tbcell tbimg\"><img decoding=\"async\" width=\"160\" height=\"160\" src=\"https:\/\/tomato-made.com\/study\/wp-content\/uploads\/2025\/04\/\u30cf\u30f3\u30c9\u30e1\u30a4\u30c9\u306b\u5f79\u7acb\u3064\u30c4\u30fc\u30eb\u307e\u3068\u3081-160x160.png\" class=\"attachment-thumb-160 size-thumb-160 wp-post-image\" alt=\"\" srcset=\"https:\/\/tomato-made.com\/study\/wp-content\/uploads\/2025\/04\/\u30cf\u30f3\u30c9\u30e1\u30a4\u30c9\u306b\u5f79\u7acb\u3064\u30c4\u30fc\u30eb\u307e\u3068\u3081-160x160.png 160w, https:\/\/tomato-made.com\/study\/wp-content\/uploads\/2025\/04\/\u30cf\u30f3\u30c9\u30e1\u30a4\u30c9\u306b\u5f79\u7acb\u3064\u30c4\u30fc\u30eb\u307e\u3068\u3081-150x150.png 150w\" sizes=\"(max-width: 160px) 100vw, 160px\"><\/span> <span class=\"tbcell tbtext\"> <time class=\"pubdate sng-link-time dfont\" itemprop=\"datePublished\" datetime=\"2025-01-20\">2025\u5e741\u670820\u65e5<\/time> \u30cf\u30f3\u30c9\u30e1\u30a4\u30c9\u306b\u5f79\u7acb\u3064\u30c4\u30fc\u30eb\u7d39\u4ecb <\/span> <\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>\u30b9\u30de\u30db\u7528\u306f\u27a1\u300c\u3053\u3061\u3089\u300d \u6697\u3044\u5199\u771f\u3092\u660e\u308b\u304f\u3001\u898b\u3084\u3059\u304f\u3067\u304d\u308b\u4fbf\u5229\u30c4\u30fc\u30eb\ud83d\udd30 \u305f\u304f\u3055\u3093\u64ae\u3063\u305f\u5199\u771f\u304c\u5168\u90e8\u6697\u3044\u3068\u3001\u305d\u308c\u3092\u7de8\u96c6\u3059\u308b\u306e\u5927\u5909\u3060\u3088\u306d\ud83d\ude30 \u305d\u306e\u56f0\u3063\u305f\u3092\u89e3\u6c7a\ud83d\ude06\uff01\uff01 \u753b\u50cf\u7de8\u96c6\u306e\u4ed5\u65b9\u306f\u300c\u3053\u3061\u3089\u300d \u3000\ud83c\udf45\u51e6\u7406\u306b\u306f\u5c11\u3057\u6642\u9593\u304b\u304b\u308a\u307e\u3059( ^ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":4014,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6,8],"tags":[],"class_list":{"0":"post-2346","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-market-z","8":"category-tool","9":"category-image","10":"entry"},"_links":{"self":[{"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/posts\/2346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/comments?post=2346"}],"version-history":[{"count":0,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/posts\/2346\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/media\/4014"}],"wp:attachment":[{"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/media?parent=2346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/categories?post=2346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tomato-made.com\/study\/wp-json\/wp\/v2\/tags?post=2346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}