ゆう's Blog
Imagickのclear(), destroy()

$imagick = new Imagick(); 画像処理 $imagick->clear(); $imagick->destroy();

clear(): これは、Imagick オブジェクトの内部リソースを解放しますが、オブジェクト自体はそのまま残ります。例えば、同じオブジェクトを再利用する場合に使用します。

destroy(): これは、Imagick オブジェクト自体を破棄し、すべてのリソースを解放します。オブジェクトをもう使用しない場合に使用します。

基本的には、スクリプトの終了時やオブジェクトを再利用しない場合には destroy() を使用し、オブジェクトを再利用する場合には clear() を使用するのが一般的です。

destroy() を使用する場合、clear() を明示的に呼び出す必要はありません。destroy() は Imagick オブジェクトとそのすべてのリソースを完全に解放するため、clear() の機能も含まれています。

InfinityFree Renew Certificate

「Create New Order」が出ないと更新できない。(メールは1日前ぐらいに届く)

Imagick 画像縮小コマンド

resizeImageは高品質なリサイズが必要な場合に適しており、thumbnailImageは小さなサムネイルを素早く生成するのに適しています。

resizeImage with EXIF removal

$image = new Imagick('path/to/image.jpg'); $image->resizeImage($width, 0, Imagick::FILTER_LANCZOS, 1, true); // 幅を指定し、高さは自動計算 $image->stripImage(); // EXIF情報を削除 $image->writeImage('path/to/resized_image.jpg');

thumbnailImage with EXIF removal

$image = new Imagick('path/to/image.jpg'); $image->thumbnailImage($width, 0, true); // 幅を指定し、高さは自動計算 $image->writeImage('path/to/thumbnail_image.jpg');

片方のサイズを0に設定することで、縦横比を維持しながらリサイズすることができます。

thumbnailImageは、関連付けられたプロパティをすべて削除します。

10進数を任意のn進数に変換

function convertToBaseN(decimalNumber, base) { return decimalNumber.toString(base); } // 例: 10進数の255を16進数に変換 console.log(convertToBaseN(255, 16)); // 出力: "ff" // 例: 10進数の255を2進数に変換 console.log(convertToBaseN(255, 2)); // 出力: "11111111"

この関数では、decimalNumberを指定されたbaseに変換します。toStringメソッドは、基数(2から36まで)を引数として受け取り、その基数で表現された文字列を返します。

function convertToBaseN(decimalNumber, base) { const digits = "0123456789abcdefghijklmnopqrstuvwxyz"; let result = ""; let number = decimalNumber; if (base < 2 || base > 36) { throw new Error("Base must be in the range 2-36"); } while (number > 0) { result = digits[number % base] + result; number = Math.floor(number / base); } return result || "0"; } // 例: 10進数の255を16進数に変換 console.log(convertToBaseN(255, 16)); // 出力: "ff" // 例: 10進数の255を2進数に変換 console.log(convertToBaseN(255, 2)); // 出力: "11111111"

この関数では、digitsという文字列を使って各桁の文字を取得し、whileループを使って10進数を指定された基数に変換しています。numberが0になるまでループを続け、各桁をresultに追加していきます。

:last-of-type が効かない

<style> .customize_tag:last-of-type { border-bottom: dashed 3px blue; padding-bottom: 1em; } </style> <div> <p class="customize_tag"> AAA </p> <p class="customize_tag"> BBB </p> </div> <p> CCC </p>

<div>要素で囲むことで、<p> 要素の最後の子要素が正しく認識されるようになります。

JavaScript で秒単位のタイムスタンプを取得する

// 現在の時刻を取得 const now = new Date(); // ミリ秒単位のタイムスタンプを取得 const timestampInMilliseconds = now.getTime(); // 秒単位のタイムスタンプを取得 const timestampInSeconds = Math.floor(timestampInMilliseconds / 1000); console.log(timestampInSeconds);

タグ挿入ボタン

タグ欄のタブ1個はスペース2個に変換。

「automatic_unique_text」ユニーク文字列に置換。(アルファベット小文字,数字,当分8桁)

当分8桁→2059年05月26日02:38:27 (日本時間)まで。

phpMyAdminでデフォルト値を「空文字」に設定する

GUIでは「Null」にはできるが「空文字」にはできなかった。
なので、phpMyAdminの「SQL」タブを使用して、直接SQLクエリを実行した。

ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET DEFAULT '';

CUI画面

・等幅フォント
・半角スペース・タブ・改行,および,それらの連続は,そのまま表示します。

「2個以上連続する半角スペース」を「半角スペースの数と同数の&nbsp;」に置換する

<?php function replaceSpaces($input) { return preg_replace_callback('/ {2,}/', function($matches) { return str_repeat('&nbsp;', strlen($matches[0])); }, $input); } $input = "これは テスト です。"; $output = replaceSpaces($input); echo $output; ?>