ぼかし処理おためし

ぼかし処理おためし
約1分で読めます

これなに?

ブログにぼかし画像を載せたいことがあったので、本文画像だけぼかして、クリック時だけ元画像を見られる処理を追加しました。
通常の画像は今までどおりそのまま表示されます。

通常画像

通常画像

ぼかし画像

ぼかし画像

ぼかし画像には クリックでぼかし解除 の案内を自動表示するようにしています。
"blur" とだけ書いた場合のデフォルト値は 24 です。
必要なら blur:18 のように個別指定もできます。

書き方

こんな感じで、画像タイトルに blur を付けるだけです。

![ぼかし画像](./vrchat-blur-test/images/VRChat_2026-04-02_20-30-34.453_2160x3840.png "blur")

処理の一部

実際には rehype で Markdown の画像を見て、ぼかし用の属性を付けています。
主要なところだけ抜粋するとこんな感じです。

const BLUR_TITLE_PATTERN = /^blur(?::(\d{1,2}))?$/i;
function parseBlurTitle(title) {
const normalizedTitle = title.trim();
const match = BLUR_TITLE_PATTERN.exec(normalizedTitle);
if (!match) {
return null;
}
const radius = Number.parseInt(match[1] ?? "24", 10);
return Number.isFinite(radius) ? Math.min(Math.max(radius, 1), 24) : 24;
}
export function rehypeImageBlur() {
return (tree) => {
visit(tree, (node) => {
if (node.type !== "element" || node.tagName !== "img") {
return;
}
const properties = node.properties ?? {};
const blurRadius = parseBlurTitle(toPropertyString(properties.title));
if (!blurRadius) {
return;
}
delete properties.title;
properties["data-blur-preview"] = "true";
appendStyle(properties, `--image-preview-blur-radius: ${blurRadius}px;`);
node.properties = properties;
});
};
}

見た目のぼかし自体は CSS 側でやっていて、lightbox 側にはその属性を引き継がないようにしているので、クリックで元画像が見られる感じです。

つまりどういうこと?

ちょっとXにアップロードするのが憚られるような画像でも、こちらに投稿できるようになった気がします。
たぶん大丈夫なんじゃないかなぁ・・・?と思ってる。

こんなのとかね。
これくらいなら全然大丈夫だとおもうけど!

おためし画像

関連記事

VRChatのSSをしっとり寄りにレタッチしてみた
/ 3 min read

VRChatのSSをしっとり寄りにレタッチしてみた

Adobe Photoshop 2026で、暗さを残しつつ湿度と血色を足す感じのレタッチ手順をまとめました。

さにゃんの魔導書庫 -Library of Arcane Whispers-
/ 3 min read

さにゃんの魔導書庫 -Library of Arcane Whispers-

魔法使いまっふぉ用のホームワールドを作りました

次に読む