{"id":1844,"date":"2014-08-08T18:15:57","date_gmt":"2014-08-08T09:15:57","guid":{"rendered":"http:\/\/taitan916.info\/blog\/?p=1844"},"modified":"2024-04-18T15:45:47","modified_gmt":"2024-04-18T06:45:47","slug":"post-1844","status":"publish","type":"post","link":"https:\/\/taitan916.info\/blog\/archives\/1844","title":{"rendered":"\u753b\u50cf\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3068\u8907\u6570\u30b5\u30e0\u30cd\u30a4\u30eb\u3092\u751f\u6210\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"<p>\u30d5\u30a9\u30fc\u30e0\u3067\u753b\u50cf\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3068\u3001\u4e88\u3081\u5b9a\u3081\u3066\u304a\u3044\u305f\u5927\u4e2d\u5c0f\u306e\u30b5\u30a4\u30ba\u3067\u30b5\u30e0\u30cd\u30a4\u30eb\u753b\u50cf\u3092\u751f\u6210\u3059\u308b\u65b9\u6cd5\u306e\u30e1\u30e2\u3002<\/p>\n<p>&nbsp;<\/p>\n<h2>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?php\r\n$resizeList = array(\r\n    0 =&gt; array(\r\n        'width' =&gt; '500', \r\n        'height' =&gt; '500', \r\n        'title' =&gt; '\u30b5\u30a4\u30ba\u5927', \r\n    ),\r\n    1 =&gt; array(\r\n        'width' =&gt; '300', \r\n        'height' =&gt; '300', \r\n        'title' =&gt; '\u30b5\u30a4\u30ba\u4e2d', \r\n    ),\r\n    2 =&gt; array(\r\n        'width' =&gt; '100', \r\n        'height' =&gt; '100', \r\n        'title' =&gt; '\u30b5\u30a4\u30ba\u5c0f', \r\n    ),\r\n);\r\n\r\ndefine('MAIN_PATH','\/var\/www\/html');\r\ndefine('IMAGE_PATH', MAIN_PATH.'\/test\/img_resize\/img\/');\r\ndefine('TMP_PATH', MAIN_PATH.'\/test\/img_resize\/tmp\/');\r\n\r\n\/* \u30e9\u30f3\u30c0\u30e0\u82f1\u6570\u5b57\u4f5c\u6210 \r\n * \u5f15\u6570 $length(int)\r\n * \u8fd4\u308a\u5024 false or string\r\n *\/\r\nfunction randomStr ($length = 1) {\r\n    if( $length &lt; 1 ) return false;\r\n    \r\n    $str = array_merge(range('a', 'z'), range('0', '9'), range('A', 'Z\"'));\r\n    for ($i = 0; $i &lt; $length; $i++) {\r\n        $r_str .= $str[rand(0, count($str)-1)];\r\n    }\r\n    return $r_str;\r\n}\r\n\r\n\/* \u753b\u50cf\u306e\u30ea\u30b5\u30a4\u30ba \r\n * \u8fd4\u308a\u5024 bool\r\n*\/\r\nfunction smart_resize_image(\r\n    $file,\r\n    $width = 0,\r\n    $height = 0,\r\n    $proportional = false,\r\n    $output = 'file',\r\n    $delete_original = true,\r\n    $use_linux_commands = false,\r\n     $quality = 100\r\n) {\r\n        \r\n    if ( $height &lt;= 0 &amp;&amp; $width &lt;= 0 ) return false;\r\n\r\n    $info = getimagesize($file);\r\n    $image = '';\r\n    $final_width = 0;\r\n    $final_height = 0;\r\n    list($width_old, $height_old) = $info;\r\n\r\n    if ($proportional) {\r\n        if ($width == 0) $factor = $height\/$height_old;\r\n        elseif ($height == 0) $factor = $width\/$width_old;\r\n        else $factor = min( $width \/ $width_old, $height \/ $height_old );\r\n\r\n        $final_width = round( $width_old * $factor );\r\n        $final_height = round( $height_old * $factor );\r\n    }\r\n    else {\r\n        $final_width = ( $width &lt;= 0 ) ? $width_old : $width;\r\n        $final_height = ( $height &lt;= 0 ) ? $height_old : $height;\r\n    }\r\n\r\n    switch ( $info[2] ) {\r\n        case IMAGETYPE_GIF: $image = imagecreatefromgif($file); break;\r\n        case IMAGETYPE_JPEG: $image = imagecreatefromjpeg($file); break;\r\n        case IMAGETYPE_PNG: $image = imagecreatefrompng($file); break;\r\n        default: return false;\r\n    }\r\n    \r\n    $image_resized = imagecreatetruecolor( $final_width, $final_height );\r\n    if ( ($info[2] == IMAGETYPE_GIF) || ($info[2] == IMAGETYPE_PNG) ) {\r\n        $transparency = imagecolortransparent($image);\r\n\r\n        if ($transparency &gt;= 0) {\r\n            $transparent_color = imagecolorsforindex($image, $trnprt_indx);\r\n            $transparency = imagecolorallocate($image_resized, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);\r\n            imagefill($image_resized, 0, 0, $transparency);\r\n            imagecolortransparent($image_resized, $transparency);\r\n        }\r\n        elseif ($info[2] == IMAGETYPE_PNG) {\r\n            imagealphablending($image_resized, false);\r\n            $color = imagecolorallocatealpha($image_resized, 0, 0, 0, 127);\r\n            imagefill($image_resized, 0, 0, $color);\r\n            imagesavealpha($image_resized, true);\r\n        }\r\n    }\r\n    imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $final_width, $final_height, $width_old, $height_old);\r\n    \r\n    if ( $delete_original ) {\r\n        if ( $use_linux_commands ) exec('rm '.$file);\r\n        else @unlink($file);\r\n    }\r\n\r\n    switch ( strtolower($output) ) {\r\n        case 'browser':\r\n            $mime = image_type_to_mime_type($info[2]);\r\n            header(\"Content-type: $mime\");\r\n            $output = NULL;\r\n        break;\r\n        case 'file':\r\n            $output = $file;\r\n        break;\r\n        case 'return':\r\n            return $image_resized;\r\n        break;\r\n        default:\r\n        break;\r\n    }\r\n    \r\n    switch ( $info[2] ) {\r\n        case IMAGETYPE_GIF: imagegif($image_resized, $output); break;\r\n        case IMAGETYPE_JPEG: imagejpeg($image_resized, $output, $quality); break;\r\n        case IMAGETYPE_PNG:\r\n            $quality = 9 - (int)((0.9*$quality)\/10.0);\r\n            imagepng($image_resized, $output, $quality);\r\n            break;\r\n        default: return false;\r\n    }\r\n\r\n    return true;\r\n}\r\n\r\n\r\nif ( $_FILES &amp;&amp; $_POST['mode'] == 'upload' ) { \/\/\u753b\u50cf\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u6642\r\n\r\n    $tmpData = array(); \/\/\u672a\u767b\u9332\u7528\u306b\u521d\u671f\u5316\r\n\r\n    \/\/\u62e1\u5f35\u5b50\u30c1\u30a7\u30c3\u30af&amp;\u540d\u524d\u6c7a\u3081\r\n    $tmpData['img']['name'] = randomStr(12); \/\/\u30d5\u30a1\u30a4\u30eb\u540d\u306f[\u4e0d\u52d5\u7523ID_\u30d5\u30a9\u30eb\u30c0ID_\u30e9\u30f3\u30c0\u30e0\u82f1\u6570\u5b57]\r\n    $image_ext = $_FILES['img']['type'];\r\n    if ($image_ext == 'image\/jpeg' || $image_ext == 'image\/jpg') {\r\n        $tmpData['img']['ext'] = '.jpg';\r\n    } elseif ($image_ext == 'image\/png') {\r\n        $tmpData['img']['ext'] = '.png';\r\n    } elseif ($image_ext == 'image\/gif') {\r\n        $tmpData['img']['ext'] = '.gif';\r\n    } else {\r\n        echo 'For jpg \/ png \/ gif other than, it was not possible to upload the extension of the image.&lt;br \/&gt;&lt;a href=\"javascript:void(0);\" onClick=\"history.back();\"&gt;return&lt;\/a&gt;';\r\n        exit();\r\n    }\r\n\r\n    \/\/\u30d5\u30a9\u30eb\u30c0\u306b\u30a2\u30c3\u30d7\r\n    if ($_FILES['img']['size'] &gt; 0) {\r\n        if (!move_uploaded_file($_FILES['img'][\"tmp_name\"], TMP_PATH . $tmpData['img']['name'] . $tmpData['img']['ext'])){\r\n            echo 'An error occurred while uploading the image.&lt;br \/&gt;&lt;a href=\"javascript:void(0);\" onClick=\"history.back();\"&gt;return&lt;\/a&gt;';\r\n            exit();\r\n        } else {\r\n            copy(TMP_PATH . $tmpData['img']['name'] . $tmpData['img']['ext'], IMAGE_PATH . $tmpData['img']['name'] . $tmpData['img']['ext']);\/\/\u30aa\u30ea\u30b8\u30ca\u30eb\u30b5\u30a4\u30ba\u306e\u753b\u50cf\u3092image\u30d5\u30a9\u30eb\u30c0\u306b\u30a2\u30c3\u30d7\r\n\r\n            for ($i = 0; $i &lt; count($resizeList); $i++) {\r\n                $sizeName = '-' . $resizeList[$i]['width'] . 'x' . $resizeList[$i]['height'];\r\n\r\n                copy(TMP_PATH . $tmpData['img']['name'] . $tmpData['img']['ext'], TMP_PATH . $tmpData['img']['name'] . $sizeName . $tmpData['img']['ext']);\/\/\u30ea\u30b5\u30a4\u30ba\u7528\u753b\u50cf\u3092tmp\u30d5\u30a9\u30eb\u30c0\u3078\u30b3\u30d4\u30fc\r\n\r\n                smart_resize_image(\r\n                    TMP_PATH . $tmpData['img']['name'] . $sizeName . $tmpData['img']['ext'],\r\n                    $width = $resizeList[$i]['width'],\r\n                    $height = $resizeList[$i]['height'],\r\n                    $proportional = false,\r\n                    $output = 'file',\r\n                    $delete_original = false,\r\n                    $use_linux_commands = false,\r\n                    $quality = 100\r\n                );\r\n                copy(TMP_PATH . $tmpData['img']['name'] . $sizeName . $tmpData['img']['ext'], IMAGE_PATH . $tmpData['img']['name'] . $sizeName . $tmpData['img']['ext']);\/\/image\u30d5\u30a9\u30eb\u30c0\u306b\u30a2\u30c3\u30d7\r\n                unlink(TMP_PATH . $tmpData['img']['name'] . $sizeName . $tmpData['img']['ext']);\r\n            }\r\n\r\n            unlink(TMP_PATH . $tmpData['img']['name'] . $tmpData['img']['ext']); \/\/\u30aa\u30ea\u30b8\u30ca\u30eb\u306etmp\u30d5\u30a9\u30eb\u30c0\u5206\u524a\u9664\r\n\r\n        }\r\n    }\r\n\r\n} \/\/\u753b\u50cf\u51e6\u7406\u3053\u3053\u307e\u3067\r\n\r\n?&gt;\r\n&lt;!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.01 Transtional\/\/EN\" \"http:\/\/www.w3c.org\/TR\/html4\/loose.dtd\"&gt;\r\n&lt;html lang=\"ja\"&gt;\r\n&lt;head&gt;\r\n    &lt;meta charset=\"utf-8\"&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n\r\n    &lt;form action=\"&lt;?=$_SERVER['PHP_SELF'];?&gt;\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\r\n        &lt;input type=\"file\" name=\"img\"&gt;\r\n        &lt;input type=\"submit\" name=\"\u9001\u4fe1\uff01\"&gt;\r\n        &lt;input type=\"hidden\" name=\"mode\" value=\"upload\"&gt;\r\n    &lt;\/form&gt;\r\n\r\n    &lt;? if( $_POST['mode'] == 'upload' ){ ?&gt;\r\n        &lt;? for($i = 0; $i &lt; count($resizeList); $i++){ ?&gt;\r\n            &lt;?=$resizeList[$i]['title'];?&gt;(width:&lt;?=$resizeList[$i]['width'];?&gt; \/ height:&lt;?=$resizeList[$i]['height'];?&gt;)&lt;br \/&gt;\r\n            &lt;img src=\".\/img\/&lt;?=$tmpData['img']['name'] . '-' . $resizeList[$i]['width'] . 'x' . $resizeList[$i]['height']  .  $tmpData['img']['ext']?&gt;\"&gt;&lt;br \/&gt;&lt;br \/&gt;\r\n        &lt;? } ?&gt;\r\n        \u30aa\u30ea\u30b8\u30ca\u30eb\u30b5\u30a4\u30ba&lt;br \/&gt;\r\n        &lt;img src=\".\/img\/&lt;?=$tmpData['img']['name'] . $tmpData['img']['ext']?&gt;\"&gt;&lt;br \/&gt;&lt;br \/&gt;\r\n    &lt;? } ?&gt;\r\n\r\n&lt;\/body&gt;<\/pre>\n<p>&nbsp;<\/p>\n<h2>\u6240\u611f<\/h2>\n<p>$resizeList\u306b\u8ffd\u52a0\u3057\u3066\u3044\u3051\u3070\u3069\u3093\u3069\u3093\u30b5\u30e0\u30cd\u30a4\u30eb\u30b5\u30a4\u30ba\u3092\u5897\u3084\u305b\u308b\u306f\u305a\u3002<\/p>\n<p>\u8907\u6570\u3063\u3066\u306e\u304c\u521d\u3081\u3066\u3060\u3063\u305f\u306e\u3067\u5c11\u3057\u624b\u9593\u53d6\u3063\u305f\u3002\u5177\u4f53\u7684\u306b\u306f1\u3064\u306e\u753b\u50cf\u3092\u7e2e\u5c0f\u21d4\u62e1\u5927\u3092\u7e70\u308a\u8fd4\u3059\u3068\u753b\u50cf\u304c\u52a3\u5316\u3068\u3044\u3046\u304b\u5909\u306b\u306a\u308b\u3002\u5f53\u305f\u308a\u524d\u306a\u3093\u3060\u3051\u3069\u3002<\/p>\n<p>\u306a\u306e\u3067\u3001\u30ea\u30b5\u30a4\u30ba\u7528\u306b\u753b\u50cf\u3092\u751f\u6210\u3057\u3066\u30ea\u30b5\u30a4\u30ba\u3057\u3066\u5143\u753b\u50cf\u306f\u7834\u68c4\u3063\u3066\u5f62\u3092\u3068\u3063\u305f\u3051\u3069\u3001\u306a\u3093\u3060\u304b\u307e\u3069\u308d\u3063\u3053\u3057\u3044\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30d5\u30a9\u30fc\u30e0\u3067\u753b\u50cf\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3068\u3001\u4e88\u3081\u5b9a\u3081\u3066\u304a\u3044\u305f\u5927\u4e2d\u5c0f\u306e\u30b5\u30a4\u30ba\u3067\u30b5\u30e0\u30cd\u30a4\u30eb\u753b ... <\/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],"tags":[91],"class_list":["post-1844","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-image"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/posts\/1844","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=1844"}],"version-history":[{"count":2,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/posts\/1844\/revisions"}],"predecessor-version":[{"id":5898,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/posts\/1844\/revisions\/5898"}],"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=1844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/categories?post=1844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/taitan916.info\/blog\/wp-json\/wp\/v2\/tags?post=1844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}