{"id":6425,"date":"2024-08-29T11:04:10","date_gmt":"2024-08-29T02:04:10","guid":{"rendered":"https:\/\/taitan916.info\/blog\/?p=6425"},"modified":"2024-05-30T17:17:21","modified_gmt":"2024-05-30T08:17:21","slug":"post-6425","status":"publish","type":"post","link":"https:\/\/taitan916.info\/blog\/archives\/6425","title":{"rendered":"PHP\u3067\u753b\u50cf\u3092\u5206\u5272\u3057\u4e26\u3079\u66ff\u3048\u3066\u51fa\u529b\u3057\u305f\u3082\u306e\u3092JavaScript\u3067\u5fa9\u5143\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"<p>\u3042\u308b\u96fb\u5b50\u66f8\u7c4d\u30b5\u30a4\u30c8\u3092\u30d6\u30e9\u30a6\u30b6\u306e\u958b\u767a\u8005\u30c4\u30fc\u30eb\u3067\u898b\u3066\u307f\u305f\u3068\u3053\u308d\u3001PHP\u3067\u30da\u30fc\u30b8\u753b\u50cf\u3092\u5206\u5272\u3057\u4e26\u3079\u66ff\u3048\u305f\u3082\u306e\u3092\u51fa\u529b\u3057\u3001\u305d\u308c\u3092\u30d6\u30e9\u30a6\u30b6\u5074\u3067\u5143\u306e\u72b6\u614b\u306b\u623b\u3057\u3066\u3044\u308b\u3088\u3046\u306b\u898b\u53d7\u3051\u3089\u308c\u305f(\u6050\u3089\u304f\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3084\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u5bfe\u7b56)\u3002\u3053\u308c\u3092\u518d\u73fe\u3057\u3066\u307f\u305f\u3044\u3002\u4ee5\u4e0b\u306b\u30b5\u30f3\u30d7\u30eb\u3068\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u30e1\u30e2\u3002<\/p>\n<p>&nbsp;<\/p>\n<h2>\u30b5\u30f3\u30d7\u30eb<\/h2>\n<h3>\u5143\u753b\u50cf<\/h3>\n<p><a href=\"https:\/\/taitan916.info\/sample\/split_restoration_img\/001.png\" target=\"_blank\" rel=\"noopener\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\">https:\/\/taitan916.info\/sample\/split_restoration_img\/001.png<\/a><\/p>\n<h3>PHP\u3067\u753b\u50cf\u3092\u5206\u5272\u3057\u4e26\u3079\u66ff\u3048\u3066\u51fa\u529b<\/h3>\n<p><a href=\"https:\/\/taitan916.info\/sample\/split_restoration_img\/split.php\" target=\"_blank\" rel=\"noopener\">https:\/\/taitan916.info\/sample\/split_restoration_img\/split.php<\/a><\/p>\n<h3>JavaScript\u3067\u5143\u306e\u72b6\u614b\u306b\u623b\u3057\u3066\u51fa\u529b<\/h3>\n<p><a href=\"https:\/\/taitan916.info\/sample\/split_restoration_img\/restoration.html\" target=\"_blank\" rel=\"noopener\">https:\/\/taitan916.info\/sample\/split_restoration_img\/restoration.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9<\/h2>\n<h3>PHP\u3067\u753b\u50cf\u3092\u5206\u5272\u3057\u4e26\u3079\u66ff\u3048\u3066\u51fa\u529b<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?php\r\n\/\/\u5bfe\u8c61\u306e\u753b\u50cf\r\n$img = '001.png';\r\n\r\n\/\/\u5bfe\u8c61\u306e\u753b\u50cf\u30b5\u30a4\u30ba\u3092\u53d6\u5f97\r\n$img_size = getimagesize($img);\r\n$img_width = $img_size[0];\r\n$img_height = $img_size[1];\r\n\r\n\/\/\u65b0\u3057\u3044\u753b\u50cf\u3092\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u4f5c\u6210\r\n$src_img = imagecreatefrompng($img);\r\n\r\n\/\/TrueColor\u30a4\u30e1\u30fc\u30b8\u3092\u65b0\u898f\u306b\u4f5c\u6210\u3059\u308b\r\n$dst_img = imagecreatetruecolor($img_width, $img_height);\r\n\r\n\/\/\u5206\u5272\u6570\r\n$parts_count = 3;\r\n\r\n\/\/\u5206\u5272\u7528\u306e\u30b5\u30a4\u30ba\u3092\u53d6\u5f97\r\n$parts_width = floor($img_width \/ $parts_count);\r\n$parts_height = floor($img_height \/ $parts_count);\r\n\r\n\/\/\u30eb\u30fc\u30d7\u3067\u753b\u50cf\u3092\u5206\u5272\u51e6\u7406\r\nfor( $i = 0; $i &lt; $parts_count; $i++){\r\n    for( $ii = 0; $ii &lt; $parts_count; $ii++){\r\n        imagecopyresampled(\r\n            $dst_img, \r\n            $src_img, \r\n            $parts_width * $i, \r\n            $parts_height * $ii, \r\n            $parts_width * $ii, \r\n            $parts_height * $i, \r\n            $parts_width, \r\n            $parts_height, \r\n            $parts_width, \r\n            $parts_height\r\n        );\r\n    }\r\n}\r\n\r\n\/\/\u753b\u50cf\u306e\u51fa\u529b\r\nheader('Content-Type: image\/png');\r\nimagepng($dst_img);\r\n<\/pre>\n<h3>JavaScript\u3067\u5143\u306e\u72b6\u614b\u306b\u623b\u3057\u3066\u51fa\u529b<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;canvas id=\"canvas\"&gt;&lt;\/canvas&gt;\r\n\r\n&lt;script type=\"text\/javascript\"&gt;\r\nconst canvas = document.getElementById(`canvas`);\r\nif( canvas.getContext ){\r\n    const ctx = canvas.getContext(`2d`);\r\n\r\n    const img = new Image();\r\n\r\n    \/\/\u753b\u50cf\u306e\u53d6\u5f97\r\n    img.src = `.\/split.php`;\r\n\r\n    img.onload = function(){\r\n\r\n        \/\/canvas\u306ewidth\u3068height\u3092\u6307\u5b9a\r\n        canvas.setAttribute(`width`, img.width.toString());\r\n        canvas.setAttribute(`height`, img.height.toString());\r\n\r\n        \/\/\u5206\u5272\u6570\r\n        const parts_count = 3;\r\n\r\n        \/\/\u5206\u5272\u7528\u306e\u30b5\u30a4\u30ba\u3092\u53d6\u5f97\r\n        const parts_width = Math.round(img.width \/ parts_count);\r\n        const parts_height = Math.round(img.height \/ parts_count);\r\n        console.log(parts_width);\r\n\r\n        \/\/\u30eb\u30fc\u30d7\u3067\u753b\u50cf\u3092\u5fa9\u5143\u51e6\u7406\r\n        for(let i = 0; i &lt; parts_count; i++){\r\n            for(let ii = 0; ii &lt; parts_count; ii++){\r\n                ctx.drawImage(\r\n                    img, \r\n                    parts_width * i, \r\n                    parts_height * ii, \r\n                    parts_width, \r\n                    parts_height, \r\n                    parts_width * ii, \r\n                    parts_height * i, \r\n                    parts_width, \r\n                    parts_height\r\n                );\r\n            }\r\n        }\r\n    }\r\n}\r\n&lt;\/script&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u3042\u308b\u96fb\u5b50\u66f8\u7c4d\u30b5\u30a4\u30c8\u3092\u30d6\u30e9\u30a6\u30b6\u306e\u958b\u767a\u8005\u30c4\u30fc\u30eb\u3067\u898b\u3066\u307f\u305f\u3068\u3053\u308d\u3001PHP\u3067\u30da\u30fc\u30b8\u753b\u50cf\u3092 ... <\/p>\n","protected":false},"author":1,"featured_media":1085,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2,4],"tags":[91],"class_list":["post-6425","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","category-javascript","tag-image"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/posts\/6425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/comments?post=6425"}],"version-history":[{"count":3,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/posts\/6425\/revisions"}],"predecessor-version":[{"id":6428,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/posts\/6425\/revisions\/6428"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/media\/1085"}],"wp:attachment":[{"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/media?parent=6425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/categories?post=6425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/tags?post=6425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}