[{"data":1,"prerenderedAt":7757},["ShallowReactive",2],{"blog-\u002Fblog\u002Fqr-read-intro":3,"blog-list-ja":275},{"id":4,"title":5,"author":6,"body":7,"category":257,"coverImage":258,"description":259,"draft":260,"extension":261,"locale":262,"meta":263,"navigation":264,"noindex":260,"path":265,"publishedAt":266,"seo":267,"slug":268,"stem":269,"tags":270,"updatedAt":266,"__hash__":274},"blog\u002Fblog\u002Fqr-read-intro.md","QR コードを読み取る — \u002Ftools\u002Fqr-read の思想と使い方","Zerosend Editorial",{"type":8,"value":9,"toc":246},"minimark",[10,14,22,26,60,64,71,74,89,92,95,118,121,127,148,151,154,157,175,178,181,191,197,203,214,223,226],[11,12,13],"p",{},"怪しい広告に貼られていた QR、送られてきたチラシの QR、カメラで読むにはスマホを近づける距離が取りづらい QR。「画像として手元にある QR を PC でサッと中身だけ確認したい」という場面は意外と多いものです。",[11,15,16,21],{},[17,18,20],"a",{"href":19},"\u002Ftools\u002Fqr-read","Zerosend の QR 読み取りツール"," は、この用途のためにあります。フィッシングやスキャン型詐欺への自衛にも使えます。",[23,24,25],"h2",{"id":25},"どんな場面で役立つか",[27,28,29,37,43,49],"ul",{},[30,31,32,36],"li",{},[33,34,35],"strong",{},"印刷物の URL を PC でそのまま開きたい",": チラシやポスターの QR を撮影 → 画像をドロップ → URL をコピー、という流れでスマホを使わずに遷移できます",[30,38,39,42],{},[33,40,41],{},"受け取った QR の内容を先に確認したい",": メールや SNS で届いた QR をスキャンする前に、リンク先が安全かテキストで確認できます",[30,44,45,48],{},[33,46,47],{},"スクリーンショットに含まれる QR を読みたい",": 画面録画や資料の中に小さく写っている QR も、画像をそのまま貼り付けるだけで読み取れます",[30,50,51,54,55,59],{},[33,52,53],{},"QR コード生成後の検証",": ",[17,56,58],{"href":57},"\u002Ftools\u002Fqr-create","QR コード生成ツール"," で作った QR が正しい内容を埋め込んでいるか、すぐ確認できます",[23,61,63],{"id":62},"なぜブラウザ内で-qr-を読み取るのか","なぜブラウザ内で QR を読み取るのか",[11,65,66,67,70],{},"QR 読み取り=「カメラで撮って自動でリンクを開く」と考えがちですが、これは",[33,68,69],{},"危険な挙動","です。悪意のある QR はフィッシングサイト、マルウェア配布 URL、課金トラップ、不審なアプリインストールに誘導することがあります。",[11,72,73],{},"Zerosend はこれに対し 2 つの方針を取ります。",[75,76,77,83],"ol",{},[30,78,79,82],{},[33,80,81],{},"画像読み取り処理をローカルで行う"," — QR 画像を第三者に渡さない",[30,84,85,88],{},[33,86,87],{},"デコード結果を自動遷移しない"," — URL が含まれていても、まずテキストとして表示し、ユーザーが内容を確認してから手動で判断できる",[11,90,91],{},"これはセキュリティ設計として重要な原則で、ZerosendのCLAUDE.mdにも「外部 URL への自動遷移禁止」として明記されています。",[23,93,94],{"id":94},"使い方",[75,96,97,105,108,115],{},[30,98,99,104],{},[17,100,101],{"href":19},[102,103,19],"code",{}," を開く",[30,106,107],{},"QR が写っている画像をドラッグ&ドロップ",[30,109,110,111,114],{},"自動でデコードが走り、結果が",[33,112,113],{},"プレーンテキスト","として表示される",[30,116,117],{},"内容を確認し、必要なら手動でコピー・遷移",[23,119,120],{"id":120},"仕組み",[11,122,123,126],{},[102,124,125],{},"jsQR"," というブラウザ対応の純 JavaScript QR デコーダを使っています。",[27,128,129,136,142,145],{},[30,130,131,132,135],{},"画像を ",[102,133,134],{},"\u003Ccanvas>"," に描画",[30,137,138,141],{},[102,139,140],{},"getImageData()"," でピクセル配列を取得",[30,143,144],{},"jsQR がピクセル配列から QR を検出・デコード",[30,146,147],{},"結果をテキストとしてそのまま表示 (HTML として解釈しない・リンク化しない)",[11,149,150],{},"ライブラリは WASM ではなく純 JavaScript 実装のため、初回ロードが軽いのも特徴です。",[23,152,153],{"id":153},"フィッシング対策としての使い方",[11,155,156],{},"怪しいメール・チラシ・SMS に QR が含まれているとき:",[75,158,159,162,169,172],{},[30,160,161],{},"画像をスクリーンショットや保存で取得 (スキャンしない)",[30,163,164,165,168],{},"Zerosend で読み取って",[33,166,167],{},"テキストとして"," URL を確認",[30,170,171],{},"URL 構造に違和感がないかチェック (正規サイトのサブドメイン偽装、短縮 URL 経由、意味不明なパスなど)",[30,173,174],{},"問題なさそうなら手動でアドレスバーに入力して遷移",[11,176,177],{},"カメラで直接読むと一発でブラウザが開くリスクがありますが、この手順ならテキストで一度確認できます。",[23,179,180],{"id":180},"よくある質問",[11,182,183,186,187,190],{},[33,184,185],{},"Q. 悪意ある QR コードを読み取っても安全ですか？","\nA. 安全です。Zerosend は読み取り結果を ",[33,188,189],{},"テキストとして表示するだけ","で、URL を自動的に開きません。フィッシングサイトへの誘導や不正アプリのインストールは、ユーザーが自分でリンクを開かない限り起きません。設計上の安全機構です。",[11,192,193,196],{},[33,194,195],{},"Q. バーコード (1D コード) も読み取れますか？","\nA. 現状は QR コード (2D) 専用です。バーコードには非対応です。",[11,198,199,202],{},[33,200,201],{},"Q. 画像内に複数の QR がある場合は？","\nA. 現状は最初に検出された 1 つだけ読み取ります。",[11,204,205,208,209,213],{},[33,206,207],{},"Q. 読み取れない QR","\nA. 解像度不足・反射・歪みが主な原因です。撮り直すか ",[17,210,212],{"href":211},"\u002Ftools\u002Fimage-edit","画像編集"," で補正を試してください。",[11,215,216,219,220,222],{},[33,217,218],{},"Q. 読み取り結果がサーバーに送られていないか確認したい","\nA. DevTools の Network タブを開いてから QR 画像をドロップしてください。通信が発生しないことが確認できます。",[102,221,125],{}," ライブラリは純 JavaScript 実装のため、WASM の読み込みもなく初回ロードが軽いです。",[23,224,225],{"id":225},"関連ツール",[27,227,228,234,239],{},[30,229,230,233],{},[17,231,232],{"href":57},"QR コード生成"," — 作った QR の検証にも使える",[30,235,236,238],{},[17,237,212],{"href":211}," — QR 画像の切り抜き・回転で読み取り成功率向上",[30,240,241,245],{},[17,242,244],{"href":243},"\u002Ftools\u002Fimage-compress","画像圧縮"," — 読み取れた QR 画像を軽く保存",{"title":247,"searchDepth":248,"depth":248,"links":249},"",2,[250,251,252,253,254,255,256],{"id":25,"depth":248,"text":25},{"id":62,"depth":248,"text":63},{"id":94,"depth":248,"text":94},{"id":120,"depth":248,"text":120},{"id":153,"depth":248,"text":153},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"tech",null,"Zerosend の QR 読み取りツールは、画像をサーバーに送らずブラウザ内で QR の中身をテキスト抽出します。リンク先の自動遷移はせず、安全に内容を確認できます。Zerosend 編集部が解説。",false,"md","ja",{},true,"\u002Fblog\u002Fqr-read-intro","2026-04-20",{"title":5,"description":259},"qr-read-intro","blog\u002Fqr-read-intro",[271,272,273],"QR","ツール","セキュリティ","9MmmWPTfOPwejFG4M1Cr_Z6VD8XdHWqtq-FTJEUil_0",[276,527,772,971,1187,1410,1626,1823,2029,2177,2407,2599,2819,3046,3211,3451,3627,3876,4080,4386,5167,5382,5657,5995,6287,6585,7049,7438,7518],{"id":277,"title":278,"author":6,"body":279,"category":257,"coverImage":258,"description":517,"draft":260,"extension":261,"locale":262,"meta":518,"navigation":264,"noindex":260,"path":519,"publishedAt":266,"seo":520,"slug":521,"stem":522,"tags":523,"updatedAt":266,"__hash__":526},"blog\u002Fblog\u002Faudio-convert-intro.md","音声形式を変換する — \u002Ftools\u002Faudio-convert の思想と使い方",{"type":8,"value":280,"toc":505},[281,284,291,294,320,323,330,333,335,355,358,384,388,414,416,419,444,447,449,455,461,467,473,475],[11,282,283],{},"取材の録音を MP3 に揃えたい、古い WAV ファイルを容量節約のため M4A に変えたい、ポッドキャスト配信用の形式に統一したい。音声ファイルの形式変換は、取材者・編集者・音楽制作者が日常的に行う作業です。",[11,285,286,290],{},[17,287,289],{"href":288},"\u002Ftools\u002Faudio-convert","Zerosend の音声形式変換ツール"," は、この作業をブラウザ内で完結させます。",[23,292,293],{"id":293},"主なユースケース",[27,295,296,302,308,314],{},[30,297,298,301],{},[33,299,300],{},"MP3 で圧縮配布",": WAV や FLAC などのマスター音源を MP3 に変換して容量を大幅に削減し、メールや共有リンクで配布しやすくする",[30,303,304,307],{},[33,305,306],{},"WAV で高音質保存",": 録音した音声インタビューや楽曲を非圧縮の WAV で保存し、後の編集作業に備える",[30,309,310,313],{},[33,311,312],{},"動画ファイルから MP3 を抽出",": 講演・ウェビナーの録画動画から音声トラックだけを取り出し、ポッドキャストや音声コンテンツとして再利用する",[30,315,316,319],{},[33,317,318],{},"形式の統一",": 複数人から集まった異なる形式の録音ファイルを、編集ソフトに合わせて一括で同一形式に変換する",[23,321,322],{"id":322},"なぜブラウザ内で変換するのか",[11,324,325,326,329],{},"録音された音声は、",[33,327,328],{},"発話の中身そのもの","を情報として持ちます。インタビュー対象者の声、打ち合わせでの発言、取材源の証言。これらを無料のオンライン変換サービスに預けることは、発話内容そのものを第三者のサーバーに預けることと同じです。",[11,331,332],{},"Zerosend は変換処理をローカルで行うため、音声ファイルが一切外に出ません。取材ソースの保護や NDA 下の音源加工でも安全に使えます。",[23,334,94],{"id":94},[75,336,337,343,346,349,352],{},[30,338,339,104],{},[17,340,341],{"href":288},[102,342,288],{},[30,344,345],{},"音声ファイルをドラッグ&ドロップ (複数可)",[30,347,348],{},"出力形式 (MP3 \u002F WAV \u002F M4A \u002F OGG) とビットレートを選択",[30,350,351],{},"「変換を開始する」をクリック",[30,353,354],{},"結果を ZIP でダウンロード",[23,356,357],{"id":357},"形式の選び方",[27,359,360,366,372,378],{},[30,361,362,365],{},[33,363,364],{},"MP3",": 最も汎用。ポッドキャスト・配信・共有の標準",[30,367,368,371],{},[33,369,370],{},"WAV",": 可逆 (ロスレス)。編集中のマスター音源・音楽制作用",[30,373,374,377],{},[33,375,376],{},"M4A (AAC)",": MP3 より圧縮効率が良い。iOS 環境で標準",[30,379,380,383],{},[33,381,382],{},"OGG (Vorbis)",": オープン形式。ゲーム・一部ブラウザで効率重視",[385,386,387],"h3",{"id":387},"ビットレートの目安",[27,389,390,396,402,408],{},[30,391,392,395],{},[33,393,394],{},"320 kbps",": 音質最優先 (MP3 の実用上限)",[30,397,398,401],{},[33,399,400],{},"192 kbps",": 標準品質。一般向け音声の定番",[30,403,404,407],{},[33,405,406],{},"128 kbps",": 容量優先。音声解説・ポッドキャスト",[30,409,410,413],{},[33,411,412],{},"96 kbps 以下",": 会話のみの録音など、音質より軽さ",[23,415,120],{"id":120},[11,417,418],{},"ffmpeg.wasm を使って再エンコードしています。",[27,420,421,424,438,441],{},[30,422,423],{},"入力音声を ffmpeg FS に書き込み",[30,425,426,427,430,431,430,434,437],{},"出力形式に応じたエンコーダ (",[102,428,429],{},"libmp3lame",", ",[102,432,433],{},"aac",[102,435,436],{},"libvorbis"," など) を指定",[30,439,440],{},"ビットレート・チャンネル数・サンプリングレートを設定",[30,442,443],{},"出力 Blob を生成してダウンロード",[11,445,446],{},"メタデータ (タイトル・アーティスト) は極力引き継ぎます。",[23,448,180],{"id":180},[11,450,451,454],{},[33,452,453],{},"Q. 可逆 → 非可逆 (WAV → MP3) と 非可逆 → 非可逆 (MP3 → M4A) の違いは？","\nA. 非可逆 → 非可逆は二重に圧縮されるため音質がさらに劣化します。マスター音源 (WAV) から目的形式に直接変換するのをお勧めします。",[11,456,457,460],{},[33,458,459],{},"Q. 複数ファイルのバッチ変換は？","\nA. 対応しています。10〜20 ファイル程度を 1 バッチで処理するのが現実的です。",[11,462,463,466],{},[33,464,465],{},"Q. 動画から音声だけ抜き出したい","\nA. 動画ファイルを入力すれば音声トラックを抽出して指定形式で書き出します。",[11,468,469,472],{},[33,470,471],{},"Q. ビットレートを自由に指定できる？","\nA. プリセットから選ぶ方式です。細かい制御が必要なら別途専門ツールを検討してください。",[23,474,225],{"id":225},[27,476,477,484,491,498],{},[30,478,479,483],{},[17,480,482],{"href":481},"\u002Ftools\u002Faudio-trim","音声トリミング"," — 変換前後の区間切り出し",[30,485,486,490],{},[17,487,489],{"href":488},"\u002Ftools\u002Fvideo-convert","動画形式変換"," — 動画側の形式変換",[30,492,493,497],{},[17,494,496],{"href":495},"\u002Ftools\u002Fvideo-trim","動画トリミング"," — 音声抽出前の動画整形",[30,499,500,504],{},[17,501,503],{"href":502},"\u002Ftools\u002Fvideo-compress","動画圧縮"," — 動画から音声を抽出する前に動画サイズを削減する",{"title":247,"searchDepth":248,"depth":248,"links":506},[507,508,509,510,514,515,516],{"id":293,"depth":248,"text":293},{"id":322,"depth":248,"text":322},{"id":94,"depth":248,"text":94},{"id":357,"depth":248,"text":357,"children":511},[512],{"id":387,"depth":513,"text":387},3,{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の音声形式変換ツールは、MP3 \u002F WAV \u002F M4A \u002F FLAC \u002F OGG などをサーバーに送らずブラウザ内で相互変換します。録音インタビューや音源ファイルの形式統一に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Faudio-convert-intro",{"title":278,"description":517},"audio-convert-intro","blog\u002Faudio-convert-intro",[524,525,272],"音声","変換","OlXJ1MeL-A2cx6TnCW2yQ2e3upQHsBkoPqR_cseAvY8",{"id":528,"title":529,"author":6,"body":530,"category":257,"coverImage":258,"description":763,"draft":260,"extension":261,"locale":262,"meta":764,"navigation":264,"noindex":260,"path":765,"publishedAt":266,"seo":766,"slug":767,"stem":768,"tags":769,"updatedAt":266,"__hash__":771},"blog\u002Fblog\u002Faudio-trim-intro.md","音声をトリミング (切り出し) する — \u002Ftools\u002Faudio-trim の思想と使い方",{"type":8,"value":531,"toc":753},[532,535,540,543,581,584,587,594,596,616,620,627,630,632,643,656,663,666,692,694,700,710,716,722,734,736],[11,533,534],{},"60 分のインタビューから引用したい 30 秒を抜き出したい、会議録音の不要な冒頭\u002F末尾をカットしたい、ポッドキャスト素材のつなぎ目を整えたい。音声のトリミングは、録音後の編集で最初に行う作業です。",[11,536,537,290],{},[17,538,539],{"href":481},"Zerosend の音声トリミングツール",[23,541,542],{"id":542},"こんな場面で使える",[27,544,545,551,557,563,569,575],{},[30,546,547,550],{},[33,548,549],{},"ポッドキャスト収録の前後カット",": 収録開始前の雑談や終了後の「切れましたか？」をまるごと除去",[30,552,553,556],{},[33,554,555],{},"BGM の切り出し",": 長いオーディオトラックから使いたいサビ部分だけを抽出",[30,558,559,562],{},[33,560,561],{},"着信音・通知音の作成",": お気に入りの曲の冒頭 30 秒をトリミングして着信音用ファイルに",[30,564,565,568],{},[33,566,567],{},"インタビュー引用",": 60 分音源から 30 秒の発言だけを抜き出してプレゼンや記事に添付",[30,570,571,574],{},[33,572,573],{},"会議録音の整理",": 30 分の会議音声から議題ごとに区間を切り出してアーカイブ",[30,576,577,580],{},[33,578,579],{},"語学学習素材",": リスニング教材の特定フレーズだけを繰り返し練習するために切り出す",[23,582,583],{"id":583},"なぜブラウザ内でトリミングするのか",[11,585,586],{},"音声ファイルには発話内容そのものが記録されています。インタビュー、取材、商談、カウンセリング、医療相談。どれも機密性が高く、当事者以外に聞かれることを想定していない音声です。",[11,588,589,590,593],{},"「一部だけ切り出したい」という作業でも、オンラインツールに預けると",[33,591,592],{},"入力した音声全体","が相手に渡ります。Zerosend はトリミング処理をローカルで行うため、アップロードそのものが発生せず、音源全体の機密が守られます。",[23,595,94],{"id":94},[75,597,598,604,607,610,613],{},[30,599,600,104],{},[17,601,602],{"href":481},[102,603,481],{},[30,605,606],{},"音声ファイルをドラッグ&ドロップ",[30,608,609],{},"開始時刻・終了時刻を指定",[30,611,612],{},"「トリミングを開始する」をクリック",[30,614,615],{},"切り出された音声をダウンロード",[23,617,619],{"id":618},"ffmpegwasm-によるブラウザ内処理","ffmpeg.wasm によるブラウザ内処理",[11,621,622,623,626],{},"動画・音声処理の定番ツール ffmpeg は、本来ターミナルから使うソフトウェアです。",[33,624,625],{},"ffmpeg.wasm"," はこれを WebAssembly でブラウザ上で動くようにしたもので、インストール不要でネイティブアプリ並みの音声処理が手元で行えます。",[11,628,629],{},"Zerosend の音声トリミングも ffmpeg.wasm を通じて動作するため、音声データがサーバーに送られることはありません。機密性の高い音声もブラウザのタブを閉じれば跡形もなく消えます。",[23,631,120],{"id":120},[11,633,634,635,638,639,642],{},"ffmpeg.wasm の ",[102,636,637],{},"-ss"," \u002F ",[102,640,641],{},"-to"," オプションで指定区間を抽出します。",[27,644,645,647,653],{},[30,646,423],{},[30,648,649,652],{},[102,650,651],{},"-ss \u003Cstart> -i input -to \u003Cend> -c copy output"," でロスレス抽出",[30,654,655],{},"再エンコードなしで切り出すため処理が速く音質劣化もない",[11,657,658,659,662],{},"入力がどの形式であっても、基本的には同じ形式で書き出されます。形式を変えたいときは ",[17,660,661],{"href":288},"音声形式変換"," と組み合わせてください。",[23,664,665],{"id":665},"使いどころ",[27,667,668,674,680,686],{},[30,669,670,673],{},[33,671,672],{},"インタビューの引用",": 60 分音源から 30 秒の引用箇所を切り出す",[30,675,676,679],{},[33,677,678],{},"不要区間の除去",": 録音冒頭の環境音や末尾の雑音をカット",[30,681,682,685],{},[33,683,684],{},"ポッドキャスト編集",": 冗長な「えー」「あのー」を含む区間を削除 (1 区間ずつ)",[30,687,688,691],{},[33,689,690],{},"会議議事録の根拠音声",": 要旨に関連する数分の根拠区間を抜き出す",[23,693,180],{"id":180},[11,695,696,699],{},[33,697,698],{},"Q. MP3 は正確にカットできますか？","\nA. MP3 はフレーム境界に依存するため、指定した時刻の直前のフレーム境界に揃います。秒単位の切り出しなら実用上問題ありません。WAV や FLAC などのロスレス形式はより正確なカットが可能です。",[11,701,702,705,706,709],{},[33,703,704],{},"Q. 音質は落ちますか？","\nA. ",[102,707,708],{},"-c copy"," によるロスレス抽出のため、再エンコードが発生せず元の音質がそのまま保持されます。MP3 を MP3 のまま切り出しても音質の劣化はありません。",[11,711,712,715],{},[33,713,714],{},"Q. 複数区間を切り出して連結できる？","\nA. 現状は 1 区間のみです。複数区間を抽出したい場合は 1 つずつ切り出してから別途連結してください。",[11,717,718,721],{},[33,719,720],{},"Q. フェードイン\u002Fフェードアウトを追加できますか？","\nA. 現状は非対応です。必要なら切り出した音声を別の編集ツールで処理してください。",[11,723,724,727,728,730,731,733],{},[33,725,726],{},"Q. 動画ファイルから音声部分だけ切り出したい","\nA. 動画ファイルを入力して ",[17,729,661],{"href":288}," を使うと、動画の音声トラックを指定形式で抽出できます。トリミングしたい区間があるなら、まず ",[17,732,496],{"href":495}," で区間抽出 → 音声形式変換、の順がお勧めです。",[23,735,225],{"id":225},[27,737,738,743,748],{},[30,739,740,742],{},[17,741,661],{"href":288}," — トリミング後に形式を変えたいとき",[30,744,745,747],{},[17,746,496],{"href":495}," — 映像付きの区間抽出",[30,749,750,752],{},[17,751,489],{"href":488}," — 動画側の処理",{"title":247,"searchDepth":248,"depth":248,"links":754},[755,756,757,758,759,760,761,762],{"id":542,"depth":248,"text":542},{"id":583,"depth":248,"text":583},{"id":94,"depth":248,"text":94},{"id":618,"depth":248,"text":619},{"id":120,"depth":248,"text":120},{"id":665,"depth":248,"text":665},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の音声トリミングツールは、音声ファイルをサーバーに送らずブラウザ内で任意の区間だけ切り出します。長尺インタビュー・会議録音・ポッドキャスト素材の整形に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Faudio-trim-intro",{"title":529,"description":763},"audio-trim-intro","blog\u002Faudio-trim-intro",[524,770,272],"トリミング","3lyRp4i_uBJXVcGETt_dsJVycY31Z5iFzImR5G2TGi0",{"id":773,"title":774,"author":6,"body":775,"category":257,"coverImage":258,"description":960,"draft":260,"extension":261,"locale":262,"meta":961,"navigation":264,"noindex":260,"path":962,"publishedAt":266,"seo":963,"slug":964,"stem":965,"tags":966,"updatedAt":266,"__hash__":970},"blog\u002Fblog\u002Fheic-to-jpg-intro.md","HEIC を JPG に変換する — \u002Ftools\u002Fheic-to-jpg の思想と使い方",{"type":8,"value":776,"toc":951},[777,780,787,791,798,824,827,830,834,837,840,842,860,862,872,892,895,897,903,909,915,921,923],[11,778,779],{},"iPhone で撮影した写真を PC や同僚に送ったら「開けません」と言われた経験、ありますよね。iPhone の標準形式 HEIC (High Efficiency Image Container) は、Apple エコシステム外では互換性が限定的です。Windows 10 以降はアドオンが必要、画像編集ソフトも対応が遅れがちです。",[11,781,782,786],{},[17,783,785],{"href":784},"\u002Ftools\u002Fheic-to-jpg","Zerosend の HEIC → JPG 変換ツール"," は、この問題をブラウザ内で解決します。",[23,788,790],{"id":789},"heic-とは","HEIC とは",[11,792,793,794,797],{},"HEIC は Apple が iOS 11 から採用した画像フォーマットです。HEVC (H.265) という映像圧縮技術を静止画に応用したもので、同等画質の JPG と比べてファイルサイズを約半分に抑えられます。iPhone のストレージを節約するうえで有効な形式ですが、",[33,795,796],{},"Apple 外のシステムでは素直に開けない","という問題を持っています。",[27,799,800,806,812,818],{},[30,801,802,805],{},[33,803,804],{},"Windows PC",": 標準では開けず、Microsoft Store から有償の HEVC コーデックをインストールする必要がある",[30,807,808,811],{},[33,809,810],{},"古い画像編集ソフト",": Photoshop や Lightroom の古いバージョンは非対応",[30,813,814,817],{},[33,815,816],{},"Web サービス",": X (Twitter)・Facebook・note など多くのプラットフォームで HEIC のアップロードが弾かれる",[30,819,820,823],{},[33,821,822],{},"Android",": HEIC をネイティブで扱えない機種が多い",[23,825,826],{"id":826},"変換が必要な主な場面",[11,828,829],{},"Windows の仕事用 PC で iPhone の写真を開きたいとき、ブログや SNS に iPhone 写真を投稿しようとして弾かれたとき、クライアントへ納品する写真素材のファイル形式を統一するとき——いずれも JPG への変換が最短解です。",[23,831,833],{"id":832},"なぜブラウザ内で-heic-を変換するのか","なぜブラウザ内で HEIC を変換するのか",[11,835,836],{},"iPhone で撮った写真は、個人・家族・仕事の私的情景を含みがちです。顔、家の中、位置情報、撮影日時。これらを無料のオンライン変換サービスにアップロードすることは、事実上それらの情報を第三者に預けることを意味します。",[11,838,839],{},"Zerosend は、HEIC のデコードから JPG の書き出しまで、すべてブラウザ内で行います。写真自体が外に出ないため、NDA 下の撮影素材や家族の写真でも安心して使えます。",[23,841,94],{"id":94},[75,843,844,850,853,856,858],{},[30,845,846,104],{},[17,847,848],{"href":784},[102,849,784],{},[30,851,852],{},"HEIC \u002F HEIF 形式の画像をドラッグ&ドロップ (複数可)",[30,854,855],{},"品質 (JPG の圧縮率) を選択",[30,857,351],{},[30,859,354],{},[23,861,120],{"id":120},[11,863,864,865,868,869,871],{},"HEIC のデコードはブラウザ標準ではまだ実装されていないため、",[102,866,867],{},"heic2any"," ライブラリを読み込んで使っています。",[102,870,867],{}," は libheif を WebAssembly 化したもので、ブラウザ内で HEIC を Blob として展開できます。",[27,873,874,877,882,885],{},[30,875,876],{},"HEIC ファイルを ArrayBuffer として読み込み",[30,878,879,881],{},[102,880,867],{}," で JPEG Blob に変換 (libheif の WASM が実行される)",[30,883,884],{},"必要なら Canvas 経由で品質を再指定",[30,886,887,888,891],{},"元のファイル名を保持したまま ",[102,889,890],{},".jpg"," 拡張子で書き出し",[11,893,894],{},"初回のみ libheif の WASM (約 2MB) をダウンロードするため少し待ち時間がありますが、2 回目以降はキャッシュから即時起動します。",[23,896,180],{"id":180},[11,898,899,902],{},[33,900,901],{},"Q. HEIC と HEIF の違いは？","\nA. HEIF がコンテナフォーマットの総称で、HEIC はその中で HEVC (H.265) でエンコードされた静止画を指します。本ツールは両方対応しています。",[11,904,905,908],{},[33,906,907],{},"Q. Live Photo はどうなりますか？","\nA. 静止画部分のみが JPG として書き出されます。動画部分は含まれません。動画も抽出したい場合は別途 iPhone 側で「書き出す > 現状のまま」を使ってください。",[11,910,911,914],{},[33,912,913],{},"Q. EXIF (撮影日時・位置情報) は引き継がれますか？","\nA. 一部情報は失われます。位置情報のプライバシー観点ではむしろ利点です。",[11,916,917,920],{},[33,918,919],{},"Q. 複数ファイルまとめて変換できますか？","\nA. はい。ZIP で一括ダウンロードできます。数十枚程度までは快適に処理できます。",[23,922,225],{"id":225},[27,924,925,930,937,944],{},[30,926,927,929],{},[17,928,244],{"href":243}," — JPG 変換後にさらに軽くしたいとき",[30,931,932,936],{},[17,933,935],{"href":934},"\u002Ftools\u002Fimage-resize","画像リサイズ"," — 送信前に寸法も揃える",[30,938,939,943],{},[17,940,942],{"href":941},"\u002Ftools\u002Fimage-convert","画像形式変換"," — JPG \u002F PNG \u002F WebP の相互変換",[30,945,946,950],{},[17,947,949],{"href":948},"\u002Ftools\u002Fimage-to-pdf","画像 → PDF"," — 変換後の JPG をまとめて PDF 化する",{"title":247,"searchDepth":248,"depth":248,"links":952},[953,954,955,956,957,958,959],{"id":789,"depth":248,"text":790},{"id":826,"depth":248,"text":826},{"id":832,"depth":248,"text":833},{"id":94,"depth":248,"text":94},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"iPhone で撮った HEIC 画像を Windows \u002F Android や古いシステムで開けるよう JPG に変換するツール。サーバーに送らずブラウザ内で変換する仕組みと注意点を Zerosend 編集部が解説。",{},"\u002Fblog\u002Fheic-to-jpg-intro",{"title":774,"description":960},"heic-to-jpg-intro","blog\u002Fheic-to-jpg-intro",[967,968,969,272],"HEIC","画像","iPhone","NbDoeVSgFPWUufoUokX_--BrmUj9tyIBQSEzbnQ7-e4",{"id":972,"title":973,"author":6,"body":974,"category":257,"coverImage":258,"description":1179,"draft":260,"extension":261,"locale":262,"meta":1180,"navigation":264,"noindex":260,"path":1181,"publishedAt":266,"seo":1182,"slug":1183,"stem":1184,"tags":1185,"updatedAt":266,"__hash__":1186},"blog\u002Fblog\u002Fimage-convert-intro.md","画像形式変換をブラウザ内で — \u002Ftools\u002Fimage-convert の思想と使い方",{"type":8,"value":975,"toc":1170},[976,979,982,1008,1014,1017,1020,1023,1030,1033,1035,1054,1056,1082,1089,1091,1098,1118,1125,1127,1133,1139,1145,1151,1153],[11,977,978],{},"「PNG で貰ったロゴを JPEG にしたい」「iPhone で撮った HEIC を JPG で送りたい」「サイト表示を速くするために WebP に揃えたい」。画像の形式変換は地味ですが発生頻度の高い作業です。",[11,980,981],{},"よくあるユースケースを整理するとこうなります。",[27,983,984,990,996,1002],{},[30,985,986,989],{},[33,987,988],{},"Web 担当者",": 納品された PNG 素材を WebP に変換してページ表示を高速化したい",[30,991,992,995],{},[33,993,994],{},"デザイナー",": 透過 PNG のロゴを、背景色固定の JPEG に変換してメール添付したい",[30,997,998,1001],{},[33,999,1000],{},"一般ユーザー",": Windows で開けない HEIC をとにかく JPG に直したい",[30,1003,1004,1007],{},[33,1005,1006],{},"開発者",": 複数形式が混在した画像フォルダを WebP に一括統一したい",[11,1009,1010,1013],{},[17,1011,1012],{"href":941},"Zerosend の画像形式変換ツール"," は、この日常作業をブラウザ内で完結させます。一度も外に出さずに、あなたの端末だけで別形式に書き出します。",[23,1015,1016],{"id":1016},"形式を変換したい主な理由",[11,1018,1019],{},"画像形式ごとに得意な用途が異なります。目的に合った形式を選ぶだけで、ファイルサイズが 30〜50% 小さくなったり、透過表現が使えるようになったりします。変換そのものを手軽にできる環境があると、素材管理の自由度が大きく上がります。",[23,1021,1022],{"id":1022},"なぜブラウザ内で形式変換するのか",[11,1024,1025,1026,1029],{},"画像変換サービスの多くは、アップロード → サーバーで変換 → ダウンロード という流れです。社員写真、契約書のスキャン、製品デザイン案。",[33,1027,1028],{},"中身を見られたくない画像ほど、オンライン変換ツールに投げづらい","のが現実です。",[11,1031,1032],{},"Zerosend は、変換処理そのものがブラウザ内で完結するため、機密性の高い素材でもそのまま使えます。DevTools の Network タブを開いたまま変換しても、画像本体がアップロードされていないことを自分で確認できます。",[23,1034,94],{"id":94},[75,1036,1037,1043,1046,1049,1051],{},[30,1038,1039,104],{},[17,1040,1041],{"href":941},[102,1042,941],{},[30,1044,1045],{},"画像をドラッグ&ドロップ (複数可)",[30,1047,1048],{},"出力形式 (JPEG \u002F PNG \u002F WebP) と品質を選択",[30,1050,351],{},[30,1052,1053],{},"結果を ZIP でまとめてダウンロード",[23,1055,357],{"id":357},[27,1057,1058,1064,1070,1076],{},[30,1059,1060,1063],{},[33,1061,1062],{},"JPEG",": 写真・背景画像。透過不要。古いブラウザ\u002Fアプリ互換性が最重要なら",[30,1065,1066,1069],{},[33,1067,1068],{},"PNG",": ロゴ・UI パーツ・透過必要なグラフィック。可逆圧縮",[30,1071,1072,1075],{},[33,1073,1074],{},"WebP",": 汎用。JPEG より 25〜35% 小さくなり、透過も扱える。モダン用途の標準",[30,1077,1078,1081],{},[33,1079,1080],{},"AVIF",": 更に小さいが生成コストが高く、ブラウザ対応がまだ揃いきらない",[11,1083,1084,1085,1088],{},"ブログや EC で表示速度を気にするなら ",[33,1086,1087],{},"WebP 一択","と言って差し支えありません。",[23,1090,120],{"id":120},[11,1092,1093,1094,1097],{},"Canvas API の ",[102,1095,1096],{},"canvas.toBlob(callback, 'image\u002Fwebp', quality)"," を使って変換しています。ブラウザ標準のエンコーダなので、外部ライブラリ依存もありません。",[27,1099,1100,1107,1112],{},[30,1101,1102,1103,1106],{},"入力画像を ",[102,1104,1105],{},"\u003Cimg>"," として読み込み",[30,1108,1109,1110,135],{},"同寸の ",[102,1111,134],{},[30,1113,1114,1117],{},[102,1115,1116],{},"toBlob"," で出力形式と品質を指定して書き出し",[11,1119,1120,1121,1124],{},"HEIC 入力のみ別ツール (",[17,1122,1123],{"href":784},"HEIC → JPG",") に振り分けています。HEIC デコーダがブラウザ標準にまだ入っていないため、別ライブラリを読み込む必要があるためです。",[23,1126,180],{"id":180},[11,1128,1129,1132],{},[33,1130,1131],{},"Q. WebP に変換するメリットは？","\nA. 同じ視覚品質で JPEG より 25〜35% 小さくなります。透過も扱えるため PNG の代替にもなり、モダンブラウザはすべて対応済みです。ブログや EC では積極的に使う価値があります。",[11,1134,1135,1138],{},[33,1136,1137],{},"Q. 透過 PNG を JPEG にしたらどうなる？","\nA. 透過部分は白で塗られます。意図しない結果になりやすいので注意してください。透過を維持したい場合は WebP か PNG のままにしてください。",[11,1140,1141,1144],{},[33,1142,1143],{},"Q. 元のメタデータ (EXIF) は引き継がれる？","\nA. 落ちます。位置情報漏れの予防としてはむしろ利点です。",[11,1146,1147,1150],{},[33,1148,1149],{},"Q. バッチ処理の上限は？","\nA. 端末のメモリ次第ですが、実用上は 100 枚前後までを推奨します。",[23,1152,225],{"id":225},[27,1154,1155,1160,1165],{},[30,1156,1157,1159],{},[17,1158,244],{"href":243}," — 品質指定で再エンコードしてサイズ削減",[30,1161,1162,1164],{},[17,1163,935],{"href":934}," — 形式変換と同時に寸法も揃えたいときは先にこちら",[30,1166,1167,1169],{},[17,1168,1123],{"href":784}," — iPhone 写真専用の変換",{"title":247,"searchDepth":248,"depth":248,"links":1171},[1172,1173,1174,1175,1176,1177,1178],{"id":1016,"depth":248,"text":1016},{"id":1022,"depth":248,"text":1022},{"id":94,"depth":248,"text":94},{"id":357,"depth":248,"text":357},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の画像形式変換ツールは、JPEG \u002F PNG \u002F WebP \u002F AVIF をサーバーに送らず相互変換します。用途別の形式選び、透過・圧縮率の違いを Zerosend 編集部が整理します。",{},"\u002Fblog\u002Fimage-convert-intro",{"title":973,"description":1179},"image-convert-intro","blog\u002Fimage-convert-intro",[968,525,1074,272],"xN0-q4ewAvDZNl6TjIn0v_ArxA8uRFuMBmge7YzSp3k",{"id":1188,"title":1189,"author":6,"body":1190,"category":257,"coverImage":258,"description":1401,"draft":260,"extension":261,"locale":262,"meta":1402,"navigation":264,"noindex":260,"path":1403,"publishedAt":266,"seo":1404,"slug":1405,"stem":1406,"tags":1407,"updatedAt":266,"__hash__":1409},"blog\u002Fblog\u002Fimage-edit-intro.md","画像の切り抜き・回転・反転をブラウザ内で — \u002Ftools\u002Fimage-edit の思想と使い方",{"type":8,"value":1191,"toc":1393},[1192,1195,1201,1203,1241,1244,1247,1254,1257,1259,1296,1298,1333,1336,1338,1344,1354,1360,1366,1372,1374],[11,1193,1194],{},"SNS アイコンの正方形切り出し、履歴書の証明写真の比率合わせ、商品画像の回転、スキャン画像の左右反転。Photoshop を開くほどでもないのに地味に面倒な作業ですよね。",[11,1196,1197,1200],{},[17,1198,1199],{"href":211},"Zerosend の画像編集ツール"," は、この 3 操作を 1 画面に集約してブラウザ内で完結させます。",[23,1202,542],{"id":542},[27,1204,1205,1211,1217,1223,1229,1235],{},[30,1206,1207,1210],{},[33,1208,1209],{},"SNS アイコン・プロフィール画像",": Instagram や Twitter は正方形が基本。1:1 プリセットでワンクリック切り抜き",[30,1212,1213,1216],{},[33,1214,1215],{},"証明写真のトリミング",": 就活・パスポート申請用に 3:4 比率で切り抜き。顔が含まれるデータをサーバーに送りたくないときに特に有効",[30,1218,1219,1222],{},[33,1220,1221],{},"スキャン画像の向き修正",": スキャナが横向きで読み込んだ場合、90° 回転で即座に修正",[30,1224,1225,1228],{},[33,1226,1227],{},"商品画像の整形",": EC サイト用に余白をカットして正方形化",[30,1230,1231,1234],{},[33,1232,1233],{},"鏡像反転",": 文字が逆に写り込んだ画像を水平反転で修正",[30,1236,1237,1240],{},[33,1238,1239],{},"ブログ・資料のサムネイル",": 16:9 プリセットで統一感のある横長画像を作成",[23,1242,1243],{"id":1243},"なぜブラウザ内で編集するのか",[11,1245,1246],{},"トリミングは個人情報と密接です。証明写真を切り出すなら顔、名刺をスキャンするなら氏名・連絡先、社内資料の一部を切り出すなら機密情報が含まれます。",[11,1248,1249,1250,1253],{},"これらを「画像を切り抜くだけ」のオンラインツールにアップロードすると、切り抜き前の原版が相手のサーバーに残る可能性があります。オンラインツールはビジネスモデル上、アップロード済みのファイルをログ・解析・AI 学習に回しても契約上問題にならないケースが多く、",[33,1251,1252],{},"利用者側からはその境界が見えません","。",[11,1255,1256],{},"Zerosend は編集処理そのものをローカルで行うことで、この不透明性を取り除きます。",[23,1258,94],{"id":94},[75,1260,1261,1267,1270,1293],{},[30,1262,1263,104],{},[17,1264,1265],{"href":211},[102,1266,211],{},[30,1268,1269],{},"画像をドラッグ&ドロップ",[30,1271,1272,1273],{},"3 つの操作から選ぶ:\n",[27,1274,1275,1281,1287],{},[30,1276,1277,1280],{},[33,1278,1279],{},"切り抜き",": 矩形を選択範囲として指定",[30,1282,1283,1286],{},[33,1284,1285],{},"回転",": 90° \u002F 180° \u002F 270° の 3 ステップ",[30,1288,1289,1292],{},[33,1290,1291],{},"反転",": 水平 \u002F 垂直",[30,1294,1295],{},"プレビューで結果を確認してダウンロード",[23,1297,120],{"id":120},[27,1299,1300,1312,1321],{},[30,1301,1302,1304,1305,1307,1308,1311],{},[33,1303,1279],{},": 選択した矩形の寸法の ",[102,1306,134],{}," を作り、",[102,1309,1310],{},"drawImage"," で元画像の該当領域を切り出し",[30,1313,1314,1316,1317,1320],{},[33,1315,1285],{},": 回転行列を ",[102,1318,1319],{},"ctx.transform"," で適用してから描画",[30,1322,1323,54,1325,1328,1329,1332],{},[33,1324,1291],{},[102,1326,1327],{},"ctx.scale(-1, 1)"," で水平、",[102,1330,1331],{},"ctx.scale(1, -1)"," で垂直",[11,1334,1335],{},"いずれも Canvas API の基本操作の組み合わせで、追加ライブラリは使っていません。処理は数十ミリ秒で完了します。",[23,1337,180],{"id":180},[11,1339,1340,1343],{},[33,1341,1342],{},"Q. 元の画像ファイルは変更されますか？","\nA. いいえ。処理はブラウザのメモリ上で行われ、ダウンロードするまで何も書き変わりません。元ファイルはそのまま手元に残ります。",[11,1345,1346,1349,1350,1353],{},[33,1347,1348],{},"Q. 対応している画像形式は？","\nA. JPEG・PNG・WebP・GIF (静止画) に対応しています。HEIC 形式の場合は先に ",[17,1351,1352],{"href":784},"HEIC → JPG 変換"," を使ってから編集してください。",[11,1355,1356,1359],{},[33,1357,1358],{},"Q. 比率指定 (1:1, 4:3, 16:9) で切り抜けますか？","\nA. はい。プリセットボタンで一発切り替えできます。SNS アイコンは 1:1、YouTube サムネは 16:9 など。",[11,1361,1362,1365],{},[33,1363,1364],{},"Q. 複数画像をまとめて同じ比率で切り抜けますか？","\nA. 現状は 1 枚ずつです。バッチ処理は要望を見ながら検討します。",[11,1367,1368,1371],{},[33,1369,1370],{},"Q. 編集後に再度編集したい場合は？","\nA. ダウンロードしたファイルを再度ドロップすれば、何度でも編集できます。",[23,1373,225],{"id":225},[27,1375,1376,1381,1386],{},[30,1377,1378,1380],{},[17,1379,935],{"href":934}," — 切り抜き後に寸法を揃えたいとき",[30,1382,1383,1385],{},[17,1384,244],{"href":243}," — 編集後の軽量化",[30,1387,1388,1392],{},[17,1389,1391],{"href":1390},"\u002Ftools\u002Fimage-merge","画像結合"," — 複数画像を 1 枚にまとめたいとき",{"title":247,"searchDepth":248,"depth":248,"links":1394},[1395,1396,1397,1398,1399,1400],{"id":542,"depth":248,"text":542},{"id":1243,"depth":248,"text":1243},{"id":94,"depth":248,"text":94},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の画像編集ツールは、切り抜き・回転・反転をサーバーに送らず端末内で処理します。証明写真・SNS アイコン・商品画像のトリミングで使える基本操作を Zerosend 編集部が解説。",{},"\u002Fblog\u002Fimage-edit-intro",{"title":1189,"description":1401},"image-edit-intro","blog\u002Fimage-edit-intro",[968,1408,272],"編集","RrpC6EauzaWkAgWFfR06-Hve3OSQ4XqwZn5wmKjcYTw",{"id":1411,"title":1412,"author":6,"body":1413,"category":257,"coverImage":258,"description":1617,"draft":260,"extension":261,"locale":262,"meta":1618,"navigation":264,"noindex":260,"path":1619,"publishedAt":266,"seo":1620,"slug":1621,"stem":1622,"tags":1623,"updatedAt":266,"__hash__":1625},"blog\u002Fblog\u002Fimage-merge-intro.md","複数画像を 1 枚にまとめる — \u002Ftools\u002Fimage-merge の思想と使い方",{"type":8,"value":1414,"toc":1608},[1415,1418,1424,1427,1434,1437,1439,1462,1464,1490,1493,1497,1517,1523,1525,1551,1553,1562,1568,1577,1583,1589,1591],[11,1416,1417],{},"スマホのスクリーンショットを複数枚まとめて 1 枚の縦長画像にしたい。商品のビフォーアフター画像を横並びで 1 枚にしたい。操作マニュアルの手順画像を縦に並べて 1 ファイルにまとめたい。比較画像や before\u002Fafter の資料作りで、画像を並べたいシーンは日常的に発生します。",[11,1419,1420,1423],{},[17,1421,1422],{"href":1390},"Zerosend の画像結合ツール"," は、こうした「複数画像を 1 枚にまとめる」需要をブラウザ内で完結させます。",[23,1425,1426],{"id":1426},"なぜブラウザ内で結合するのか",[11,1428,1429,1430,1433],{},"結合対象の画像には、アプリの画面キャプチャ、社内ドキュメントのスクショ、顧客の LINE 履歴など機密性の高いものが混ざりがちです。",[33,1431,1432],{},"結合対象を全部まとめてサーバーに上げる","ということは、それだけの量の機密情報を一度に外に出すことと同じです。",[11,1435,1436],{},"Zerosend は結合処理そのものがローカルで動くため、何枚投入しても 1 枚のファイルも外に出ません。",[23,1438,94],{"id":94},[75,1440,1441,1447,1450,1453,1456,1459],{},[30,1442,1443,104],{},[17,1444,1445],{"href":1390},[102,1446,1390],{},[30,1448,1449],{},"画像を複数枚ドラッグ&ドロップ",[30,1451,1452],{},"結合方向を選ぶ (縦に連結 \u002F 横に連結 \u002F グリッド)",[30,1454,1455],{},"順序が違う場合はドラッグで並べ替え",[30,1457,1458],{},"「結合を開始する」をクリック",[30,1460,1461],{},"1 枚の画像としてダウンロード",[23,1463,120],{"id":120},[27,1465,1466,1469,1475,1481,1484],{},[30,1467,1468],{},"各入力画像の寸法を計測",[30,1470,1471,1472,1474],{},"結合後の ",[102,1473,134],{}," サイズを計算 (縦連結なら幅は最大・高さは合計)",[30,1476,1477,1478,1480],{},"画像を順に ",[102,1479,1310],{}," で配置",[30,1482,1483],{},"幅\u002F高さが揃わない場合は縦横比を保って自動センタリング",[30,1485,1486,1489],{},[102,1487,1488],{},"canvas.toBlob()"," で PNG \u002F JPEG として書き出し",[11,1491,1492],{},"全処理は Canvas API の組み合わせで完結します。100 枚程度の結合まで現実的です。",[23,1494,1496],{"id":1495},"縦結合横結合の使い分け","縦結合・横結合の使い分け",[27,1498,1499,1505,1511],{},[30,1500,1501,1504],{},[33,1502,1503],{},"縦に連結",": スマホのスクロールスクリーンショットをつなぐ、手順説明の連番画像をまとめる",[30,1506,1507,1510],{},[33,1508,1509],{},"横に連結",": ビフォー\u002Fアフターを並べる、比較検討資料を 1 枚にする",[30,1512,1513,1516],{},[33,1514,1515],{},"グリッド",": 複数カットを整然と並べて SNS 投稿やカタログ素材にする",[11,1518,1519,1520,1522],{},"サイズが異なる画像は、余白を自動で埋めて揃えます。事前に ",[17,1521,935],{"href":934}," で寸法を統一しておくと、余白なしにきれいに仕上がります。",[23,1524,665],{"id":665},[27,1526,1527,1533,1539,1545],{},[30,1528,1529,1532],{},[33,1530,1531],{},"スクショ集約",": アプリのフロー解説で、複数画面を 1 枚にまとめて Slack に貼る",[30,1534,1535,1538],{},[33,1536,1537],{},"比較画像",": ビフォー\u002Fアフターを横並びで 1 枚に",[30,1540,1541,1544],{},[33,1542,1543],{},"SNS 投稿",": Instagram の 1 枚投稿でも複数カットを見せる",[30,1546,1547,1550],{},[33,1548,1549],{},"申請書類",": 表紙と本文を 1 画像にまとめて提出",[23,1552,180],{"id":180},[11,1554,1555,1558,1559,1561],{},[33,1556,1557],{},"Q. 結合後のファイルサイズはどのくらいになりますか？","\nA. 入力枚数と解像度に比例して大きくなります。多数枚を結合した場合は ",[17,1560,244],{"href":243}," で軽量化するのがおすすめです。",[11,1563,1564,1567],{},[33,1565,1566],{},"Q. 何枚まで結合できますか？","\nA. ツールに上限は設けていませんが、ブラウザのメモリに依存します。100 枚程度までは現実的に動作します。",[11,1569,1570,1573,1574,1576],{},[33,1571,1572],{},"Q. 画像サイズが違うものを結合するとどうなる？","\nA. 縦連結では幅を最大に合わせ、余白部分は透明 (PNG) または白 (JPEG) になります。事前に ",[17,1575,935],{"href":934}," で揃えておくときれいに仕上がります。",[11,1578,1579,1582],{},[33,1580,1581],{},"Q. 間に余白を入れられる？","\nA. はい。境界の色と幅を指定できます。",[11,1584,1585,1588],{},[33,1586,1587],{},"Q. グリッドの行数・列数は指定できる？","\nA. はい。例えば 4 枚を 2×2 のグリッドに配置できます。",[23,1590,225],{"id":225},[27,1592,1593,1598,1603],{},[30,1594,1595,1597],{},[17,1596,935],{"href":934}," — 結合前にサイズを揃える",[30,1599,1600,1602],{},[17,1601,244],{"href":243}," — 結合後の巨大ファイルを軽くする",[30,1604,1605,1607],{},[17,1606,949],{"href":948}," — 結合の代わりに PDF 1 枚にまとめる選択肢も",{"title":247,"searchDepth":248,"depth":248,"links":1609},[1610,1611,1612,1613,1614,1615,1616],{"id":1426,"depth":248,"text":1426},{"id":94,"depth":248,"text":94},{"id":120,"depth":248,"text":120},{"id":1495,"depth":248,"text":1496},{"id":665,"depth":248,"text":665},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の画像結合ツールは、複数の画像をサーバーに送らずブラウザ内で縦\u002F横に連結します。比較画像・ビフォーアフター・スマホのスクリーンショット集約に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fimage-merge-intro",{"title":1412,"description":1617},"image-merge-intro","blog\u002Fimage-merge-intro",[968,1624,272],"結合","BdOzeJZQnsoFfwi5pz3V87puNcR5EgH2JaJgn9GjCok",{"id":1627,"title":1628,"author":6,"body":1629,"category":257,"coverImage":258,"description":1814,"draft":260,"extension":261,"locale":262,"meta":1815,"navigation":264,"noindex":260,"path":1816,"publishedAt":266,"seo":1817,"slug":1818,"stem":1819,"tags":1820,"updatedAt":266,"__hash__":1822},"blog\u002Fblog\u002Fimage-resize-intro.md","画像リサイズをブラウザ内で — \u002Ftools\u002Fimage-resize の思想と使い方",{"type":8,"value":1630,"toc":1804},[1631,1634,1640,1643,1649,1656,1658,1677,1680,1718,1720,1726,1750,1753,1756,1759,1761,1767,1773,1779,1785,1787],[11,1632,1633],{},"SNS に投稿したい、社内 Wiki に貼りたい、EC サイトの商品画像に使いたい、メールに添付したい。用途ごとに必要な画像サイズは違います。スマホで撮った 4000×3000 ピクセルの写真をそのままアップすると、受け側サーバーで勝手に縮小されたり、表示が重くなったりします。",[11,1635,1636,1639],{},[17,1637,1638],{"href":934},"Zerosend の画像リサイズツール"," は、この「用途に合う寸法に先に揃えておきたい」需要をブラウザ内で完結させます。",[23,1641,1642],{"id":1642},"なぜブラウザ内でリサイズするのか",[11,1644,1645,1646,1253],{},"画像は、送信前に必要な解像度まで落としておくのが基本です。受け側サーバーの自動縮小に任せると、圧縮アルゴリズムを自分で選べず、結果も見えません。何より、",[33,1647,1648],{},"元の高解像度がサーバー側に残ります",[11,1650,1651,1652,1655],{},"顔写真、社員証、内装写真、診断書のスキャン。個人情報が含まれる画像を、ブラウザの「縮小してアップロード」機能付きサービスに投げることは、結果的に",[33,1653,1654],{},"原寸画像をそのままアップロードしている","のと同じです。Zerosend では、リサイズ処理そのものをあなたの端末で行うことで、アップロードする画像が本当に縮小済みであることを保証します。",[23,1657,94],{"id":94},[75,1659,1660,1666,1669,1672,1675],{},[30,1661,1662,104],{},[17,1663,1664],{"href":934},[102,1665,934],{},[30,1667,1668],{},"画像をドラッグ&ドロップ (複数ファイル対応)",[30,1670,1671],{},"目標サイズを指定 — 「幅」「高さ」「長辺」「短辺」のいずれかを固定",[30,1673,1674],{},"「リサイズを開始する」をクリック",[30,1676,1053],{},[385,1678,1679],{"id":1679},"用途別の推奨サイズ",[27,1681,1682,1688,1694,1700,1706,1712],{},[30,1683,1684,1687],{},[33,1685,1686],{},"X \u002F Twitter",": 長辺 1600px",[30,1689,1690,1693],{},[33,1691,1692],{},"Instagram",": 正方形 1080px",[30,1695,1696,1699],{},[33,1697,1698],{},"LinkedIn \u002F Facebook",": 長辺 1200px",[30,1701,1702,1705],{},[33,1703,1704],{},"ブログ本文",": 幅 800〜1200px",[30,1707,1708,1711],{},[33,1709,1710],{},"メールの添付",": 長辺 1024px 程度 (画質維持しつつ 500KB 以下に収まりやすい)",[30,1713,1714,1717],{},[33,1715,1716],{},"ECサイトのサムネ",": 幅 400〜600px",[23,1719,120],{"id":120},[11,1721,1722,1723,1725],{},"画像リサイズは、Canvas API の ",[102,1724,1310],{}," を使ったブラウザ標準のバイキュービック補間で行っています。外部ライブラリの呼び出しも、サーバーへの問い合わせもありません。",[27,1727,1728,1733,1739,1745],{},[30,1729,131,1730,1732],{},[102,1731,1105],{}," 要素として読み込む",[30,1734,1735,1736,1738],{},"目標サイズの ",[102,1737,134],{}," を作成",[30,1740,1741,1744],{},[102,1742,1743],{},"ctx.drawImage(img, 0, 0, targetW, targetH)"," で描画",[30,1746,1747,1749],{},[102,1748,1488],{}," で出力形式 (JPEG \u002F PNG \u002F WebP) を指定して Blob に",[11,1751,1752],{},"一括処理は Promise.all ではなく順次実行しているため、数十枚でもメモリを圧迫しません。",[23,1754,1755],{"id":1755},"縦横比の維持について",[11,1757,1758],{},"リサイズで気をつけるべき最大のポイントは「アスペクト比の崩れ」です。幅だけを変えて高さはそのままにすると、人物が横に伸びたり商品が歪んだりします。本ツールでは既定で縦横比を維持するため、「幅を指定する」だけで高さは自動計算されます。強制的にトリミングするモードも選べるので、SNS の正方形サムネイルを作る際にも対応できます。",[23,1760,180],{"id":180},[11,1762,1763,1766],{},[33,1764,1765],{},"Q. 縦横比は保持されますか？","\nA. 既定で保持されます。「幅を合わせる」を選べば高さは自動で計算されます。",[11,1768,1769,1772],{},[33,1770,1771],{},"Q. EXIF (撮影情報) は？","\nA. リサイズ時に落ちます。プライバシー保護の観点ではむしろ利点です。",[11,1774,1775,1778],{},[33,1776,1777],{},"Q. 拡大もできますか？","\nA. できますが推奨しません。拡大は情報を増やせないため、AI 超解像を使わない限り画質は改善しません。",[11,1780,1781,1784],{},[33,1782,1783],{},"Q. 複数ファイルを一括処理できますか？","\nA. はい。ドラッグ&ドロップで複数ファイルを投入すると、同じ設定で一括リサイズして ZIP でまとめてダウンロードできます。",[23,1786,225],{"id":225},[27,1788,1789,1794,1799],{},[30,1790,1791,1793],{},[17,1792,244],{"href":243}," — リサイズ後にさらに軽くしたいときに",[30,1795,1796,1798],{},[17,1797,942],{"href":941}," — WebP \u002F JPEG \u002F PNG の変換",[30,1800,1801,1803],{},[17,1802,212],{"href":211}," — 切り抜き・回転・反転",{"title":247,"searchDepth":248,"depth":248,"links":1805},[1806,1807,1810,1811,1812,1813],{"id":1642,"depth":248,"text":1642},{"id":94,"depth":248,"text":94,"children":1808},[1809],{"id":1679,"depth":513,"text":1679},{"id":120,"depth":248,"text":120},{"id":1755,"depth":248,"text":1755},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の画像リサイズツールは、画像をサーバーに送らず端末内で寸法変更します。用途別の推奨サイズ、一括処理、品質を落とさないリサイズのコツを Zerosend 編集部が解説。",{},"\u002Fblog\u002Fimage-resize-intro",{"title":1628,"description":1814},"image-resize-intro","blog\u002Fimage-resize-intro",[968,1821,272],"リサイズ","_Uhop01N2UVvIiAaq5jlsmlRm_wNoZwYVJzFkekar6Y",{"id":1824,"title":1825,"author":6,"body":1826,"category":257,"coverImage":258,"description":2020,"draft":260,"extension":261,"locale":262,"meta":2021,"navigation":264,"noindex":260,"path":2022,"publishedAt":266,"seo":2023,"slug":2024,"stem":2025,"tags":2026,"updatedAt":266,"__hash__":2028},"blog\u002Fblog\u002Fimage-to-pdf-intro.md","画像を 1 つの PDF にまとめる — \u002Ftools\u002Fimage-to-pdf の思想と使い方",{"type":8,"value":1827,"toc":2012},[1828,1831,1836,1838,1864,1867,1869,1876,1883,1885,1908,1910,1916,1947,1950,1952,1958,1967,1973,1982,1984],[11,1829,1830],{},"スマホで撮ったレシート 10 枚を経費精算で PDF にまとめる、スキャンした書類 15 枚を 1 つの PDF にまとめて申請する、商品写真を PDF カタログにする。「画像 → PDF」の変換は、個人から業務まで頻繁に発生する作業です。",[11,1832,1833,290],{},[17,1834,1835],{"href":948},"Zerosend の画像 → PDF 変換ツール",[23,1837,293],{"id":293},[27,1839,1840,1846,1852,1858],{},[30,1841,1842,1845],{},[33,1843,1844],{},"写真をポートフォリオ PDF に",": デザイナーや写真家が作品画像を選択して 1 ファイルにまとめ、クライアントへの提案や審査用に配布する",[30,1847,1848,1851],{},[33,1849,1850],{},"スキャン画像を 1 ファイルに集約",": 複数ページにわたる契約書・申請書をスキャンした画像を 1 つの PDF にまとめて提出する",[30,1853,1854,1857],{},[33,1855,1856],{},"レシート・領収書の経費精算",": スマホで撮影したレシートをまとめて月次経費書類として提出する",[30,1859,1860,1863],{},[33,1861,1862],{},"複数画像を順番管理して配布",": ドラッグ&ドロップで並び順を調整しながら、説明資料やマニュアルを PDF にまとめる",[11,1865,1866],{},"複数の画像ファイルを 1 回の操作で 1 つの PDF に変換できるため、枚数が多いほど手作業との差が際立ちます。",[23,1868,322],{"id":322},[11,1870,1871,1872,1875],{},"画像 → PDF 変換の入力は、写真・スキャン・スクリーンショットです。つまり",[33,1873,1874],{},"画像 1 枚ずつが個別の機密情報","を持ちます。レシートなら店名・金額・日時・クレカ下 4 桁、スキャン書類なら本文全体、スクショなら画面に写っているすべて。",[11,1877,1878,1879,1882],{},"それらをまとめてオンライン PDF 化サービスに投げるのは、",[33,1880,1881],{},"機密情報セットをまとめて外に出す","ことに他なりません。Zerosend ではローカルで PDF 組み立てまで行うため、アップロードは発生しません。",[23,1884,94],{"id":94},[75,1886,1887,1893,1896,1899,1902,1905],{},[30,1888,1889,104],{},[17,1890,1891],{"href":948},[102,1892,948],{},[30,1894,1895],{},"画像を複数枚ドラッグ&ドロップ (JPEG \u002F PNG \u002F WebP)",[30,1897,1898],{},"ページサイズ (A4 \u002F レター \u002F 画像原寸) と向きを選ぶ",[30,1900,1901],{},"並び順をドラッグで調整",[30,1903,1904],{},"「PDF 化を開始する」をクリック",[30,1906,1907],{},"1 つの PDF ファイルとしてダウンロード",[23,1909,120],{"id":120},[11,1911,1912,1915],{},[102,1913,1914],{},"pdf-lib"," を使って PDF を組み立てています。",[27,1917,1918,1921,1927,1938,1941],{},[30,1919,1920],{},"各画像を ArrayBuffer で読み込み",[30,1922,1923,1926],{},[102,1924,1925],{},"PDFDocument.create()"," で新規ドキュメントを作成",[30,1928,1929,1930,1933,1934,1937],{},"ページごとに ",[102,1931,1932],{},"pdfDoc.embedJpg()"," または ",[102,1935,1936],{},"embedPng()"," で画像を埋め込み",[30,1939,1940],{},"ページサイズに合わせて自動で縮小・センタリング",[30,1942,1943,1946],{},[102,1944,1945],{},".save()"," で最終的な PDF バイト列に",[11,1948,1949],{},"画像のサイズ指定は縦横比を保持したまま、指定ページサイズに収まるよう計算されます。",[23,1951,180],{"id":180},[11,1953,1954,1957],{},[33,1955,1956],{},"Q. 画像の順序は変えられますか？","\nA. はい。追加した順に並びますが、ドラッグで並べ替えできます。",[11,1959,1960,1963,1964,1966],{},[33,1961,1962],{},"Q. 画像の向き (縦\u002F横) を個別に変えられますか？","\nA. ページ単位の向きは全体で統一されます。個別に回転したい場合は ",[17,1965,212],{"href":211}," で先に回転してから PDF 化してください。",[11,1968,1969,1972],{},[33,1970,1971],{},"Q. OCR (文字認識) はかかる？","\nA. かかりません。画像はそのまま PDF に埋め込まれます。検索可能 PDF にしたい場合は別途 OCR ツールを通してください (プライバシー観点では、OCR もローカルで完結するツールを選ぶべきです)。",[11,1974,1975,1978,1979,1981],{},[33,1976,1977],{},"Q. 圧縮は？","\nA. 元画像がそのまま埋め込まれるため、PDF が大きくなりがちです。事前に ",[17,1980,244],{"href":243}," してから投入すると、最終 PDF が軽くなります。",[23,1983,225],{"id":225},[27,1985,1986,1991,1998,2005],{},[30,1987,1988,1990],{},[17,1989,244],{"href":243}," — PDF 化前に画像を軽くする",[30,1992,1993,1997],{},[17,1994,1996],{"href":1995},"\u002Ftools\u002Fpdf-compress","PDF 圧縮"," — 生成した PDF をさらに軽くする",[30,1999,2000,2004],{},[17,2001,2003],{"href":2002},"\u002Ftools\u002Fpdf-merge","PDF 結合"," — 既存 PDF と結合する",[30,2006,2007,2011],{},[17,2008,2010],{"href":2009},"\u002Ftools\u002Fpdf-to-image","PDF → 画像"," — 逆変換",{"title":247,"searchDepth":248,"depth":248,"links":2013},[2014,2015,2016,2017,2018,2019],{"id":293,"depth":248,"text":293},{"id":322,"depth":248,"text":322},{"id":94,"depth":248,"text":94},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の画像 → PDF 変換ツールは、複数画像をサーバーに送らず 1 つの PDF にまとめます。スキャン画像の PDF 化・レシートまとめ・申請書類の体裁整え。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fimage-to-pdf-intro",{"title":1825,"description":2020},"image-to-pdf-intro","blog\u002Fimage-to-pdf-intro",[2027,968,525,272],"PDF","W4LB1AnTY2syLdRrdjvKSLPfsnRiA8kspm8q42K-X9g",{"id":2030,"title":2031,"author":6,"body":2032,"category":257,"coverImage":258,"description":2168,"draft":260,"extension":261,"locale":262,"meta":2169,"navigation":264,"noindex":260,"path":2170,"publishedAt":266,"seo":2171,"slug":2172,"stem":2173,"tags":2174,"updatedAt":266,"__hash__":2176},"blog\u002Fblog\u002Fpdf-compress-intro.md","PDF を圧縮する — \u002Ftools\u002Fpdf-compress の思想と使い方",{"type":8,"value":2033,"toc":2161},[2034,2037,2042,2045,2052,2055,2057,2077,2080,2084,2087,2107,2114,2116,2122,2128,2134,2140,2142],[11,2035,2036],{},"メールで PDF を送ろうとしたら「ファイルサイズが大きすぎます」と弾かれた、Slack の無料枠を食い潰す、見積書 PDF が 30MB あって顧客にストレスを与えている。PDF のサイズ圧縮は、業務の摩擦を減らすのに効く小さな改善です。",[11,2038,2039,290],{},[17,2040,2041],{"href":1995},"Zerosend の PDF 圧縮ツール",[23,2043,2044],{"id":2044},"なぜブラウザ内で圧縮するのか",[11,2046,2047,2048,2051],{},"PDF 圧縮サービスの大半はアップロード型です。つまり",[33,2049,2050],{},"契約書・見積書・健康診断・給与明細を他社サーバーに預ける","ことになります。「削除します」と書かれていても、その履行をユーザーが確認する術はありません。",[11,2053,2054],{},"Zerosend は圧縮処理をローカルで行うため、機密性の高い PDF をそのまま投入できます。DevTools で本当にアップロードされていないことを確認してから使ってください。",[23,2056,94],{"id":94},[75,2058,2059,2065,2068,2071,2074],{},[30,2060,2061,104],{},[17,2062,2063],{"href":1995},[102,2064,1995],{},[30,2066,2067],{},"PDF をドラッグ&ドロップ",[30,2069,2070],{},"画質レベルを選択 (高品質 \u002F 標準 \u002F 低品質)",[30,2072,2073],{},"「圧縮を開始する」をクリック",[30,2075,2076],{},"軽量化された PDF をダウンロード",[11,2078,2079],{},"スキャン由来の画像 PDF に特に効果があります。ベクタ主体のテキスト PDF はもともと軽いので削減率は控えめです。",[23,2081,2083],{"id":2082},"仕組み-ラスタライズによる再構築","仕組み — ラスタライズによる再構築",[11,2085,2086],{},"Zerosend の PDF 圧縮は、ページを一度画像化して再構築する方式です。",[27,2088,2089,2096,2099,2104],{},[30,2090,2091,2092,2095],{},"元 PDF を ",[102,2093,2094],{},"pdfjs-dist"," で各ページをキャンバスに描画",[30,2097,2098],{},"描画結果を指定品質で JPEG にエンコード",[30,2100,2101,2103],{},[102,2102,1914],{}," で新しい PDF を組み立て、JPEG ページを埋め込み",[30,2105,2106],{},"元 PDF の metadata (タイトル・作成者など) は引き継ぐ",[11,2108,2109,2110,2113],{},"このアプローチの強みはサイズ削減率の高さ、弱みは",[33,2111,2112],{},"ベクタ情報が失われること"," (テキスト選択・検索不可になる) です。テキスト検索性を維持したい場合は、元 PDF のまま送るか、軽量化の必要性を再検討してください。",[23,2115,180],{"id":180},[11,2117,2118,2121],{},[33,2119,2120],{},"Q. 削減率はどのくらい？","\nA. 画像主体のスキャン PDF なら 50〜80% 減ることもあります。テキスト主体の PDF は 10〜30% 程度です。",[11,2123,2124,2127],{},[33,2125,2126],{},"Q. 圧縮後にテキスト検索できなくなった","\nA. ラスタライズ方式の副作用です。「標準」設定では解像度を維持するため読みやすさは保ちますが、テキストとしては検索できません。",[11,2129,2130,2133],{},[33,2131,2132],{},"Q. OCR は含まれますか？","\nA. 非対応です。圧縮後の PDF を検索可能にしたい場合は、別途 OCR ツールが必要です。",[11,2135,2136,2139],{},[33,2137,2138],{},"Q. 元の PDF が暗号化されている場合は？","\nA. パスワード保護された PDF は処理できません。先にロック解除が必要です。",[23,2141,225],{"id":225},[27,2143,2144,2149,2156],{},[30,2145,2146,2148],{},[17,2147,2003],{"href":2002}," — 圧縮前に結合しておく",[30,2150,2151,2155],{},[17,2152,2154],{"href":2153},"\u002Ftools\u002Fpdf-split","PDF 分割"," — 必要なページだけ抽出すれば圧縮も不要なことが多い",[30,2157,2158,2160],{},[17,2159,244],{"href":243}," — スキャン前の個別画像を軽くしておく選択肢",{"title":247,"searchDepth":248,"depth":248,"links":2162},[2163,2164,2165,2166,2167],{"id":2044,"depth":248,"text":2044},{"id":94,"depth":248,"text":94},{"id":2082,"depth":248,"text":2083},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の PDF 圧縮ツールは、PDF をサーバーに送らずブラウザ内でページをラスタライズして再構築し、サイズを削減します。メール添付上限に引っかかる PDF を軽くしたいときに。",{},"\u002Fblog\u002Fpdf-compress-intro",{"title":2031,"description":2168},"pdf-compress-intro","blog\u002Fpdf-compress-intro",[2027,2175,272],"圧縮","VvJ1WqvmAb_Nlcrf3hFnpj4_JU9LgW9Mc6y4cTGier0",{"id":2178,"title":2179,"author":6,"body":2180,"category":257,"coverImage":258,"description":2399,"draft":260,"extension":261,"locale":262,"meta":2400,"navigation":264,"noindex":260,"path":2401,"publishedAt":266,"seo":2402,"slug":2403,"stem":2404,"tags":2405,"updatedAt":266,"__hash__":2406},"blog\u002Fblog\u002Fpdf-edit-intro.md","PDF のページを並べ替え・削除・回転 — \u002Ftools\u002Fpdf-edit の思想と使い方",{"type":8,"value":2181,"toc":2390},[2182,2185,2192,2194,2232,2234,2240,2243,2245,2283,2287,2293,2299,2301,2330,2339,2341,2347,2353,2359,2365,2371,2373],[11,2183,2184],{},"スキャンしたら逆向きになっていた、最終ページが白紙だから削除したい、契約書の章を入れ替えたい。PDF 編集の 9 割は「ページの並べ替え・削除・回転」で済みます。",[11,2186,2187,2191],{},[17,2188,2190],{"href":2189},"\u002Ftools\u002Fpdf-edit","Zerosend の PDF ページ編集ツール"," は、この基本 3 操作をブラウザ内で完結させます。",[23,2193,542],{"id":542},[27,2195,2196,2202,2208,2214,2220,2226],{},[30,2197,2198,2201],{},[33,2199,2200],{},"スキャン結果の向き修正",": スキャナが横向きで読み込んだページを 90° 回転して正しい向きに",[30,2203,2204,2207],{},[33,2205,2206],{},"白紙ページの削除",": スキャン時に混入した白紙ページや意図しない空白ページをまとめて削除",[30,2209,2210,2213],{},[33,2211,2212],{},"報告書の章順修正",": 後から追加した付録を適切な位置に移動。ドラッグ操作でページを並べ直す",[30,2215,2216,2219],{},[33,2217,2218],{},"配布用 PDF の整形",": 社内向けの全ページを含む PDF から、共有しても問題ないページだけを残す",[30,2221,2222,2225],{},[33,2223,2224],{},"製本・印刷準備",": 両面印刷や製本に合わせてページ順を並べ替える",[30,2227,2228,2231],{},[33,2229,2230],{},"プレゼン資料の調整",": 不要なスライドを削除して提出用スリム版を作成",[23,2233,1243],{"id":1243},[11,2235,2236,2237,1253],{},"PDF 編集の対象は、ほぼ例外なく機密文書です。業務委託契約、秘密保持契約、顧客カルテ、社内規程、給与明細。これらを「ページを入れ替えるだけ」のオンラインサービスに預けると、",[33,2238,2239],{},"元の全ページが相手のサーバーに渡ります",[11,2241,2242],{},"「処理後にすぐ削除」と書かれていても、保存の痕跡や解析ログをユーザーが検証する手段はありません。Zerosend ではページ編集もローカル処理のため、この透明性の問題を構造的に回避できます。",[23,2244,94],{"id":94},[75,2246,2247,2253,2255,2258,2280],{},[30,2248,2249,104],{},[17,2250,2251],{"href":2189},[102,2252,2189],{},[30,2254,2067],{},[30,2256,2257],{},"ページサムネイル一覧が表示される",[30,2259,2260,2261],{},"操作:\n",[27,2262,2263,2269,2275],{},[30,2264,2265,2268],{},[33,2266,2267],{},"並べ替え",": ドラッグでページを入れ替え",[30,2270,2271,2274],{},[33,2272,2273],{},"削除",": 不要なページのゴミ箱アイコンをクリック",[30,2276,2277,2279],{},[33,2278,1285],{},": 各ページの回転アイコンで 90° 単位回転",[30,2281,2282],{},"「編集を完了する」をクリックして新しい PDF を出力",[23,2284,2286],{"id":2285},"pdf-lib-によるブラウザ内-pdf-処理","pdf-lib によるブラウザ内 PDF 処理",[11,2288,2289,2290,2292],{},"Zerosend の PDF ページ編集は ",[33,2291,1914],{}," というオープンソースライブラリで実装しています。pdf-lib はブラウザ上で PDF の読み込み・書き出しができる純粋な JavaScript ライブラリで、サーバーサイドの処理は一切不要です。",[11,2294,2295,2296,2298],{},"サムネイル表示には ",[33,2297,2094],{}," (PDF.js) を使い、各ページを Canvas に描画。並べ替え・削除・回転の操作を UI 上で決めてから、最後に pdf-lib で新しい PDF として書き出します。契約書や機密文書も、データが端末から出ることなく安全に編集できます。",[23,2300,120],{"id":120},[27,2302,2303,2309,2312,2318,2325],{},[30,2304,2305,2306,2308],{},"PDF を ",[102,2307,2094],{}," でレンダリングしてサムネイル一覧を表示",[30,2310,2311],{},"ページの並び・削除・回転情報を UI 上で管理",[30,2313,2314,2315,2317],{},"「完了」操作時に ",[102,2316,1914],{}," を呼び出し、元 PDF から必要なページを順にコピー",[30,2319,2320,2321,2324],{},"回転は ",[102,2322,2323],{},"page.setRotation()"," で書き込み",[30,2326,2327,2328],{},"最終 PDF として ",[102,2329,1945],{},[11,2331,2332,2333,2335,2336,2338],{},"サムネ描画 (",[102,2334,2094],{},") と PDF 組み立て (",[102,2337,1914],{},") の 2 ライブラリで役割分担しています。",[23,2340,180],{"id":180},[11,2342,2343,2346],{},[33,2344,2345],{},"Q. テキストの編集はできますか？","\nA. 本ツールはページ単位の操作 (並べ替え・削除・回転) に特化しています。文章の書き換えや署名追加、注釈入力には対応していません。",[11,2348,2349,2352],{},[33,2350,2351],{},"Q. パスワード付き PDF は使えますか？","\nA. パスワードで保護された PDF の編集には対応していません。事前にパスワードを解除してください。",[11,2354,2355,2358],{},[33,2356,2357],{},"Q. 編集履歴は残りますか？","\nA. 新しい PDF として書き出すため、元ファイルは変更されません。必要なら元ファイルを別途保存しておいてください。",[11,2360,2361,2364],{},[33,2362,2363],{},"Q. ページを複製 (同じページを 2 回入れる) できますか？","\nA. 現状は非対応です。需要があれば追加します。",[11,2366,2367,2370],{},[33,2368,2369],{},"Q. 回転の粒度は？","\nA. 90° 単位のみです。PDF の仕様上、自由角度回転は本来のページ情報を損ねる可能性があるため非対応です。",[23,2372,225],{"id":225},[27,2374,2375,2380,2385],{},[30,2376,2377,2379],{},[17,2378,2154],{"href":2153}," — 編集ではなく切り分けたいとき",[30,2381,2382,2384],{},[17,2383,2003],{"href":2002}," — 複数 PDF を結合",[30,2386,2387,2389],{},[17,2388,1996],{"href":1995}," — 編集後のサイズ削減",{"title":247,"searchDepth":248,"depth":248,"links":2391},[2392,2393,2394,2395,2396,2397,2398],{"id":542,"depth":248,"text":542},{"id":1243,"depth":248,"text":1243},{"id":94,"depth":248,"text":94},{"id":2285,"depth":248,"text":2286},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の PDF ページ編集ツールは、PDF のページ順序変更・削除・回転をサーバーに送らず端末内で行います。スキャン時の向きミス修正や不要ページ削除に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fpdf-edit-intro",{"title":2179,"description":2399},"pdf-edit-intro","blog\u002Fpdf-edit-intro",[2027,1408,272],"Yze0vH4wa57jdSYGGpMOWoCe3g9kWI080CC7vD4rqMI",{"id":2408,"title":2409,"author":6,"body":2410,"category":257,"coverImage":258,"description":2590,"draft":260,"extension":261,"locale":262,"meta":2591,"navigation":264,"noindex":260,"path":2592,"publishedAt":266,"seo":2593,"slug":2594,"stem":2595,"tags":2596,"updatedAt":266,"__hash__":2598},"blog\u002Fblog\u002Fpdf-split-intro.md","PDF を分割する — \u002Ftools\u002Fpdf-split の思想と使い方",{"type":8,"value":2411,"toc":2582},[2412,2415,2420,2424,2430,2433,2436,2438,2475,2479,2485,2487,2492,2520,2523,2525,2531,2537,2543,2549,2562,2564],[11,2413,2414],{},"契約書の 2〜5 ページだけ取引先に送りたい、100 ページの報告書を章ごとに分けて関係者に配りたい、スキャン時に 1 ファイルにまとめてしまった複数書類を切り分けたい。PDF の分割は業務で頻繁に発生するにもかかわらず、一般的なツールが少ない作業です。",[11,2416,2417,290],{},[17,2418,2419],{"href":2153},"Zerosend の PDF 分割ツール",[23,2421,2423],{"id":2422},"なぜブラウザ内で-pdf-を分割するのか","なぜブラウザ内で PDF を分割するのか",[11,2425,2426,2427,1253],{},"PDF の中身は、契約書・見積書・健康診断結果・給与明細・設計資料など、ほぼすべてが機密性を持ちます。これを「PDF 分割できるオンラインサービス」にアップロードすると、",[33,2428,2429],{},"元の全ページが一旦そのサービスのサーバーに渡ります",[11,2431,2432],{},"ユーザー側が「2〜5 ページだけ必要」と思っていても、サービス側は全ページにアクセスできます。無料で提供されている以上、何らかの対価 (ログ・解析・AI 学習素材) としてファイルが使われている可能性は否定できません。",[11,2434,2435],{},"Zerosend は分割処理そのものがローカルで動くため、この構造的な問題を回避できます。",[23,2437,94],{"id":94},[75,2439,2440,2446,2449,2470,2473],{},[30,2441,2442,104],{},[17,2443,2444],{"href":2153},[102,2445,2153],{},[30,2447,2448],{},"PDF ファイルをドラッグ&ドロップ",[30,2450,2451,2452],{},"分割方法を選ぶ:\n",[27,2453,2454,2460],{},[30,2455,2456,2459],{},[33,2457,2458],{},"全ページを 1 ページずつ分割"," — 100 ページなら 100 ファイル",[30,2461,2462,2465,2466,2469],{},[33,2463,2464],{},"範囲指定"," — 例: ",[102,2467,2468],{},"1-3, 5, 7-10"," で複数範囲を抽出",[30,2471,2472],{},"「分割を開始する」をクリック",[30,2474,354],{},[23,2476,2478],{"id":2477},"pdf-lib-によるブラウザ内処理","pdf-lib によるブラウザ内処理",[11,2480,2481,2482,2484],{},"本ツールは ",[33,2483,1914],{}," というブラウザで完全動作する PDF 編集ライブラリを使っています。pdf-lib はサーバーへの問い合わせなしに PDF の読み込み・生成・ページ操作を行える純粋な JavaScript ライブラリです。元の PDF ファイルは変更されず、指定したページのみを新しい PDF として書き出します。",[23,2486,120],{"id":120},[11,2488,2489,2491],{},[102,2490,1914],{}," というブラウザで動く PDF 編集ライブラリを使っています。",[27,2493,2494,2497,2503,2509,2515],{},[30,2495,2496],{},"入力 PDF を ArrayBuffer として読み込み",[30,2498,2499,2502],{},[102,2500,2501],{},"PDFDocument.load()"," で解析",[30,2504,2505,2506,1738],{},"範囲指定に応じた新しい ",[102,2507,2508],{},"PDFDocument",[30,2510,2511,2514],{},[102,2512,2513],{},"copyPages()"," で必要なページだけコピー",[30,2516,2517,2519],{},[102,2518,1945],{}," で新しい PDF バイト列を生成",[11,2521,2522],{},"すべてメモリ上で処理し、ネットワークには一切送りません。",[23,2524,180],{"id":180},[11,2526,2527,2530],{},[33,2528,2529],{},"Q. 1 ページずつ個別のファイルに分割できますか？","\nA. できます。「全ページを 1 ページずつ分割」を選ぶと、100 ページなら 100 ファイルが生成されて ZIP でまとめてダウンロードできます。",[11,2532,2533,2536],{},[33,2534,2535],{},"Q. 元の PDF ファイルは変更されますか？","\nA. 変更されません。ブラウザのメモリ上で新しい PDF を生成するだけで、元ファイルへの書き込みは一切行いません。",[11,2538,2539,2542],{},[33,2540,2541],{},"Q. 暗号化された PDF (パスワード保護) も分割できる？","\nA. パスワードなしの PDF のみ対応。暗号化 PDF は先にロック解除が必要です。",[11,2544,2545,2548],{},[33,2546,2547],{},"Q. ページ数が非常に多い PDF (500 ページなど) は？","\nA. 処理はできますが、ブラウザのメモリ次第で時間がかかります。数百 MB 規模の PDF は端末スペック次第で詰まることがあります。",[11,2550,2551,2554,2555,430,2558,2561],{},[33,2552,2553],{},"Q. 分割後のファイル名は？","\nA. 元ファイル名に ",[102,2556,2557],{},"-p1",[102,2559,2560],{},"-p2-5"," のようなサフィックスを付けます。",[23,2563,225],{"id":225},[27,2565,2566,2571,2577],{},[30,2567,2568,2570],{},[17,2569,2003],{"href":2002}," — 分割とは逆に、複数 PDF を 1 つに",[30,2572,2573,2576],{},[17,2574,2575],{"href":2189},"PDF ページ編集"," — ページの並べ替え・削除・回転",[30,2578,2579,2581],{},[17,2580,1996],{"href":1995}," — 分割後のファイルを軽くする",{"title":247,"searchDepth":248,"depth":248,"links":2583},[2584,2585,2586,2587,2588,2589],{"id":2422,"depth":248,"text":2423},{"id":94,"depth":248,"text":94},{"id":2477,"depth":248,"text":2478},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の PDF 分割ツールは、PDF をサーバーに送らずブラウザ内でページ単位\u002F範囲指定で分割します。機密文書の特定ページだけ共有したいときに。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fpdf-split-intro",{"title":2409,"description":2590},"pdf-split-intro","blog\u002Fpdf-split-intro",[2027,2597,272],"分割","XPJKIzDxfGixIoHq5VkY0twuwi6ez2lMZK2tzEN3Q-Y",{"id":2600,"title":2601,"author":6,"body":2602,"category":257,"coverImage":258,"description":2811,"draft":260,"extension":261,"locale":262,"meta":2812,"navigation":264,"noindex":260,"path":2813,"publishedAt":266,"seo":2814,"slug":2815,"stem":2816,"tags":2817,"updatedAt":266,"__hash__":2818},"blog\u002Fblog\u002Fpdf-to-image-intro.md","PDF を画像に変換する — \u002Ftools\u002Fpdf-to-image の思想と使い方",{"type":8,"value":2603,"toc":2801},[2604,2607,2612,2614,2640,2642,2649,2652,2654,2672,2675,2695,2697,2702,2730,2733,2735,2744,2750,2756,2765,2777,2779],[11,2605,2606],{},"プレゼン資料の 1 ページだけスクリーンショット的に使いたい、PDF の一部を SNS 投稿したい、PDF を見れない環境向けに画像で送りたい。「PDF → 画像」の変換は地味に需要があります。",[11,2608,2609,290],{},[17,2610,2611],{"href":2009},"Zerosend の PDF → 画像変換ツール",[23,2613,25],{"id":25},[27,2615,2616,2622,2628,2634],{},[30,2617,2618,2621],{},[33,2619,2620],{},"SNS・ブログへの資料引用",": 講演スライドや報告書の特定ページを画像として切り出し、X や Instagram にそのまま投稿できます",[30,2623,2624,2627],{},[33,2625,2626],{},"サムネイル作成",": PDF ドキュメントの表紙ページを高解像度 PNG に変換し、ウェブサイトのカバー画像として使えます",[30,2629,2630,2633],{},[33,2631,2632],{},"PDF 非対応の環境に送る",": チャットツールや古い CMS が PDF に対応していなくても、画像なら貼れます",[30,2635,2636,2639],{},[33,2637,2638],{},"PDF の内容をすばやく確認・共有",": 受け取った PDF の一部だけを画像にして、コメント付きで関係者に送る用途にも便利です",[23,2641,322],{"id":322},[11,2643,2644,2645,2648],{},"PDF から画像を切り出したい場面は、社内資料・顧客提案書・設計図・契約書スナップショットなど、機密度が高いケースが多いものです。「PDF の特定ページを画像にしたいだけ」とオンラインツールに上げるときも、",[33,2646,2647],{},"アップロードされるのは PDF の全ページ","です。",[11,2650,2651],{},"Zerosend は変換処理をローカルで行うため、そもそも PDF が外に出ません。",[23,2653,94],{"id":94},[75,2655,2656,2662,2664,2667,2669],{},[30,2657,2658,104],{},[17,2659,2660],{"href":2009},[102,2661,2009],{},[30,2663,2067],{},[30,2665,2666],{},"出力形式 (PNG \u002F JPEG) と解像度を選ぶ",[30,2668,351],{},[30,2670,2671],{},"全ページの画像が ZIP で生成される",[385,2673,2674],{"id":2674},"解像度の目安",[27,2676,2677,2683,2689],{},[30,2678,2679,2682],{},[33,2680,2681],{},"72 DPI",": ウェブ掲載・SNS 投稿用。画質より軽さ優先",[30,2684,2685,2688],{},[33,2686,2687],{},"150 DPI",": 画面で読む標準品質",[30,2690,2691,2694],{},[33,2692,2693],{},"300 DPI",": 印刷品質。資料の細部が重要なとき",[23,2696,120],{"id":120},[11,2698,2699,2701],{},[102,2700,2094],{}," を使って各ページを Canvas に描画し、Canvas から画像として書き出しています。",[27,2703,2704,2707,2712,2722,2727],{},[30,2705,2706],{},"PDF を ArrayBuffer として読み込み",[30,2708,2709,2502],{},[102,2710,2711],{},"getDocument()",[30,2713,1929,2714,2717,2718,2721],{},[102,2715,2716],{},"getPage(n)"," → ",[102,2719,2720],{},"render(ctx, viewport)"," で Canvas に描画",[30,2723,2724,2726],{},[102,2725,1488],{}," で PNG \u002F JPEG 化",[30,2728,2729],{},"全ページを ZIP にまとめてダウンロード",[11,2731,2732],{},"ブラウザの描画エンジンをそのまま使うため、フォント埋め込み・ベクタ図・透過要素も正確に再現されます。",[23,2734,180],{"id":180},[11,2736,2737,2740,2741,2743],{},[33,2738,2739],{},"Q. 特定のページだけ変換できますか？","\nA. 現状は全ページが対象です。特定ページだけなら ",[17,2742,2154],{"href":2153}," で該当ページだけ抽出してから変換するのが確実です。",[11,2745,2746,2749],{},[33,2747,2748],{},"Q. 透過背景の PDF を変換するとどうなる？","\nA. PNG を選べば透過が保持されます。JPEG は透過非対応のため白背景になります。",[11,2751,2752,2755],{},[33,2753,2754],{},"Q. 画像の品質をもっと上げたい","\nA. 解像度を 300 DPI にすると大きく改善します。ファイルサイズとメモリ消費も大きくなります。",[11,2757,2758,2761,2762,2764],{},[33,2759,2760],{},"Q. 全ページを 1 枚にまとめたい","\nA. 本ツールは 1 ページ 1 ファイルです。まとめたい場合はダウンロード後 ",[17,2763,1391],{"href":1390}," で結合してください。",[11,2766,2767,2770,2771,2773,2774,2776],{},[33,2768,2769],{},"Q. PNG と JPEG どちらを選ぶべきか？","\nA. テキストや図表が多い資料は ",[33,2772,1068],{}," が高品質です。写真が多いページや SNS 投稿用に軽さを優先するなら ",[33,2775,1062],{}," が適しています。",[23,2778,225],{"id":225},[27,2780,2781,2786,2791,2796],{},[30,2782,2783,2785],{},[17,2784,2154],{"href":2153}," — 変換前に必要なページだけ抽出",[30,2787,2788,2790],{},[17,2789,1996],{"href":1995}," — 先に PDF を軽くしてから変換すると出力もコンパクトに",[30,2792,2793,2795],{},[17,2794,244],{"href":243}," — 変換後の画像サイズをさらに削減",[30,2797,2798,2800],{},[17,2799,1391],{"href":1390}," — 変換した複数ページを 1 枚にまとめる",{"title":247,"searchDepth":248,"depth":248,"links":2802},[2803,2804,2805,2808,2809,2810],{"id":25,"depth":248,"text":25},{"id":322,"depth":248,"text":322},{"id":94,"depth":248,"text":94,"children":2806},[2807],{"id":2674,"depth":513,"text":2674},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の PDF → 画像変換ツールは、PDF の各ページをサーバーに送らずブラウザ内で PNG \u002F JPEG に書き出します。資料の一部だけ共有したいときに便利。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fpdf-to-image-intro",{"title":2601,"description":2811},"pdf-to-image-intro","blog\u002Fpdf-to-image-intro",[2027,968,525,272],"71aq4s1WD6fPtxZpe1EQB5VFETOk05HeofsZ6n-nTXM",{"id":2820,"title":2821,"author":6,"body":2822,"category":257,"coverImage":258,"description":3038,"draft":260,"extension":261,"locale":262,"meta":3039,"navigation":264,"noindex":260,"path":3040,"publishedAt":266,"seo":3041,"slug":3042,"stem":3043,"tags":3044,"updatedAt":266,"__hash__":3045},"blog\u002Fblog\u002Fqr-create-intro.md","QR コードを生成する — \u002Ftools\u002Fqr-create の思想と使い方",{"type":8,"value":2823,"toc":3028},[2824,2827,2833,2835,2871,2875,2889,2893,2899,2902,2905,2907,2927,2930,2956,2958,2964,2975,2978,2980,2986,2995,3001,3003],[11,2825,2826],{},"自社サイトの URL を名刺に載せる、Wi-Fi パスワードを会議室の壁に貼る、イベントのアンケート URL をポスターに印刷する。QR コードは、URL や短いテキストを物理空間に橋渡しする便利な手段です。",[11,2828,2829,2832],{},[17,2830,2831],{"href":57},"Zerosend の QR コード生成ツール"," は、QR を作る作業をブラウザ内で完結させます。",[23,2834,293],{"id":293},[27,2836,2837,2843,2849,2855,2865],{},[30,2838,2839,2842],{},[33,2840,2841],{},"URL 共有",": ブログ記事やランディングページの URL を QR 化し、チラシ・ポスター・プレゼンスライドに貼り付ける",[30,2844,2845,2848],{},[33,2846,2847],{},"名刺への掲載",": 個人サイト・SNS プロフィール・連絡先 vCard を QR にして名刺の余白に印刷する",[30,2850,2851,2854],{},[33,2852,2853],{},"店舗のメニューリンク",": 飲食店やショップがデジタルメニューの URL を QR 化してテーブルに設置する。メニュー変更のたびに紙を刷り直す必要がなくなる",[30,2856,2857,2860,2861,2864],{},[33,2858,2859],{},"Wi-Fi 情報の掲示",": SSID とパスワードを ",[102,2862,2863],{},"WIFI:S:ネットワーク名;T:WPA;P:パスワード;;"," 形式で入力すると、スキャンするだけで接続できる QR が生成できる",[30,2866,2867,2870],{},[33,2868,2869],{},"社内限定 URL の共有",": 外部に見られたくない社内ポータルや β テストの URL を、外部サーバーに渡さずに QR 化できる",[23,2872,2874],{"id":2873},"png-と-svg-の使い分け","PNG と SVG の使い分け",[27,2876,2877,2883],{},[30,2878,2879,2882],{},[33,2880,2881],{},"SVG (印刷用)",": ベクタ形式なので拡大しても劣化しない。名刺・ポスター・看板など印刷物には SVG が最適",[30,2884,2885,2888],{},[33,2886,2887],{},"PNG (Web 掲載用)",": Web ページや SNS への埋め込みには PNG が扱いやすい。サイズ指定のプレビューも確認しやすい",[23,2890,2892],{"id":2891},"なぜブラウザ内で-qr-を作るのか","なぜブラウザ内で QR を作るのか",[11,2894,2895,2896,1253],{},"QR 生成サービスの多くは、入力した URL やテキストをサーバーに送って画像を返す形式です。「URL を QR にしただけ」と思いがちですが、",[33,2897,2898],{},"どの URL を誰がいつ QR にしたかという履歴がサーバーに残り得ます",[11,2900,2901],{},"社内専用 URL、β 版テスト URL、限定公開のアンケート URL などは、外部に知られたくない情報です。Wi-Fi パスワードや連絡先情報をテキストから QR 化する場合、中身がそのまま第三者のサーバーに渡ります。",[11,2903,2904],{},"Zerosend では QR 生成処理そのものがブラウザ内で完結するため、入力したテキストは一切外に出ません。",[23,2906,94],{"id":94},[75,2908,2909,2915,2918,2921,2924],{},[30,2910,2911,104],{},[17,2912,2913],{"href":57},[102,2914,57],{},[30,2916,2917],{},"テキスト・URL を入力",[30,2919,2920],{},"出力形式 (PNG \u002F SVG)・サイズ・誤り訂正レベルを選択",[30,2922,2923],{},"「QR を生成する」をクリック",[30,2925,2926],{},"画像をダウンロード",[23,2928,2929],{"id":2929},"誤り訂正レベルの選び方",[27,2931,2932,2938,2944,2950],{},[30,2933,2934,2937],{},[33,2935,2936],{},"L (Low, 7%)",": 小さい QR にしたいとき。印刷品質が良いなら実用十分",[30,2939,2940,2943],{},[33,2941,2942],{},"M (Medium, 15%)",": 汎用・標準",[30,2945,2946,2949],{},[33,2947,2948],{},"Q (Quartile, 25%)",": 名刺・ステッカーなど汚れ・折れが予想される用途",[30,2951,2952,2955],{},[33,2953,2954],{},"H (High, 30%)",": ロゴ重ね合わせ・屋外掲示で摩耗想定",[23,2957,120],{"id":120},[11,2959,2960,2963],{},[102,2961,2962],{},"qrcode"," という広く使われているブラウザ対応ライブラリを使っています。",[27,2965,2966,2969,2972],{},[30,2967,2968],{},"入力テキストから QR マトリクスを計算",[30,2970,2971],{},"Canvas に描画 (PNG) または SVG として直接生成",[30,2973,2974],{},"モジュール数・誤り訂正レベル・色指定に応じて調整",[11,2976,2977],{},"SVG で生成すれば、拡大縮小しても劣化しないベクタ画像が得られます。印刷用途には SVG がおすすめです。",[23,2979,180],{"id":180},[11,2981,2982,2985],{},[33,2983,2984],{},"Q. QR に含められるテキスト量は？","\nA. 仕様上は最大 4296 文字 (英数字)、日本語なら 1817 文字程度まで。長くなるほど QR の密度が上がり、スキャン成功率は下がります。URL 短縮サービスの利用も検討してください (ただしサードパーティ依存が増える)。",[11,2987,2988,2991,2992,2994],{},[33,2989,2990],{},"Q. ロゴを中央に重ねたい","\nA. 本ツールでは直接対応していませんが、PNG \u002F SVG をダウンロードしたあと ",[17,2993,212],{"href":211}," で合成できます。誤り訂正は H にしておくとスキャン成功率が上がります。",[11,2996,2997,3000],{},[33,2998,2999],{},"Q. 作った QR の履歴は残りますか？","\nA. 残りません。タブを閉じた時点ですべて消えます。",[23,3002,225],{"id":225},[27,3004,3005,3011,3016,3021],{},[30,3006,3007,3010],{},[17,3008,3009],{"href":19},"QR コード読み取り"," — 生成した QR の検証・他人の QR の中身確認",[30,3012,3013,3015],{},[17,3014,212],{"href":211}," — QR にロゴを重ねる合成に",[30,3017,3018,3020],{},[17,3019,949],{"href":948}," — 複数 QR を 1 枚にまとめて印刷",[30,3022,3023,3027],{},[17,3024,3026],{"href":3025},"\u002Ftools\u002Ffavicon-generator","ファビコン生成"," — Web サイト向けアイコン素材もブラウザ内で作成",{"title":247,"searchDepth":248,"depth":248,"links":3029},[3030,3031,3032,3033,3034,3035,3036,3037],{"id":293,"depth":248,"text":293},{"id":2873,"depth":248,"text":2874},{"id":2891,"depth":248,"text":2892},{"id":94,"depth":248,"text":94},{"id":2929,"depth":248,"text":2929},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の QR コード生成ツールは、URL やテキストをサーバーに送らずブラウザ内で QR 画像 (PNG \u002F SVG) に変換します。名刺・ポスター・プレゼン用の QR 作成に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fqr-create-intro",{"title":2821,"description":3038},"qr-create-intro","blog\u002Fqr-create-intro",[271,272],"6JpZtRhu832AQp3h_uxIPs5vVv-mxaDe0ZRJBFamLnM",{"id":4,"title":5,"author":6,"body":3047,"category":257,"coverImage":258,"description":259,"draft":260,"extension":261,"locale":262,"meta":3208,"navigation":264,"noindex":260,"path":265,"publishedAt":266,"seo":3209,"slug":268,"stem":269,"tags":3210,"updatedAt":266,"__hash__":274},{"type":8,"value":3048,"toc":3199},[3049,3051,3055,3057,3077,3079,3083,3085,3095,3097,3099,3115,3117,3121,3135,3137,3139,3141,3153,3155,3157,3163,3167,3171,3177,3183,3185],[11,3050,13],{},[11,3052,3053,21],{},[17,3054,20],{"href":19},[23,3056,25],{"id":25},[27,3058,3059,3063,3067,3071],{},[30,3060,3061,36],{},[33,3062,35],{},[30,3064,3065,42],{},[33,3066,41],{},[30,3068,3069,48],{},[33,3070,47],{},[30,3072,3073,54,3075,59],{},[33,3074,53],{},[17,3076,58],{"href":57},[23,3078,63],{"id":62},[11,3080,66,3081,70],{},[33,3082,69],{},[11,3084,73],{},[75,3086,3087,3091],{},[30,3088,3089,82],{},[33,3090,81],{},[30,3092,3093,88],{},[33,3094,87],{},[11,3096,91],{},[23,3098,94],{"id":94},[75,3100,3101,3107,3109,3113],{},[30,3102,3103,104],{},[17,3104,3105],{"href":19},[102,3106,19],{},[30,3108,107],{},[30,3110,110,3111,114],{},[33,3112,113],{},[30,3114,117],{},[23,3116,120],{"id":120},[11,3118,3119,126],{},[102,3120,125],{},[27,3122,3123,3127,3131,3133],{},[30,3124,131,3125,135],{},[102,3126,134],{},[30,3128,3129,141],{},[102,3130,140],{},[30,3132,144],{},[30,3134,147],{},[11,3136,150],{},[23,3138,153],{"id":153},[11,3140,156],{},[75,3142,3143,3145,3149,3151],{},[30,3144,161],{},[30,3146,164,3147,168],{},[33,3148,167],{},[30,3150,171],{},[30,3152,174],{},[11,3154,177],{},[23,3156,180],{"id":180},[11,3158,3159,186,3161,190],{},[33,3160,185],{},[33,3162,189],{},[11,3164,3165,196],{},[33,3166,195],{},[11,3168,3169,202],{},[33,3170,201],{},[11,3172,3173,208,3175,213],{},[33,3174,207],{},[17,3176,212],{"href":211},[11,3178,3179,219,3181,222],{},[33,3180,218],{},[102,3182,125],{},[23,3184,225],{"id":225},[27,3186,3187,3191,3195],{},[30,3188,3189,233],{},[17,3190,232],{"href":57},[30,3192,3193,238],{},[17,3194,212],{"href":211},[30,3196,3197,245],{},[17,3198,244],{"href":243},{"title":247,"searchDepth":248,"depth":248,"links":3200},[3201,3202,3203,3204,3205,3206,3207],{"id":25,"depth":248,"text":25},{"id":62,"depth":248,"text":63},{"id":94,"depth":248,"text":94},{"id":120,"depth":248,"text":120},{"id":153,"depth":248,"text":153},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},{},{"title":5,"description":259},[271,272,273],{"id":3212,"title":3213,"author":6,"body":3214,"category":257,"coverImage":258,"description":3442,"draft":260,"extension":261,"locale":262,"meta":3443,"navigation":264,"noindex":260,"path":3444,"publishedAt":266,"seo":3445,"slug":3446,"stem":3447,"tags":3448,"updatedAt":266,"__hash__":3450},"blog\u002Fblog\u002Fvideo-compress-intro.md","動画をブラウザ内で圧縮する — \u002Ftools\u002Fvideo-compress の思想と使い方",{"type":8,"value":3215,"toc":3430},[3216,3219,3229,3232,3235,3242,3253,3255,3258,3277,3280,3306,3309,3313,3316,3320,3331,3367,3370,3374,3380,3382,3388,3394,3400,3406,3408,3427],[11,3217,3218],{},"打ち合わせ動画、商品撮影、画面録画、子供の運動会。日常で動画を扱う場面は増える一方で、SNS やメッセンジャーのサイズ制限、メールの添付上限、サーバーのストレージコストという現実的な壁にぶつかります。",[11,3220,3221,3222,3228],{},"Zerosend は ",[17,3223,3224,3225,3227],{"href":502},"動画圧縮ツール (",[102,3226,502],{},")"," を、この「軽くしたいだけなのに、動画を他人のサーバーに預ける必要はない」という素朴な違和感を起点に作りました。なぜ作ったのか、どう使うのか、裏で何が起きているのかを整理します。",[23,3230,3231],{"id":3231},"なぜブラウザ内で動画を圧縮するのか",[11,3233,3234],{},"動画は個人情報そのものです。顔・声・背景・位置情報、ときには画面録画の中にパスワードや顧客名まで写り込みます。これをオンラインの圧縮サービスにアップロードするということは、その内容を一度他人のサーバーに預けることです。",[11,3236,3237,3238,3241],{},"多くのサービスは「一定時間で自動削除」を謳いますが、",[33,3239,3240],{},"その削除は利用者から検証できません","。削除完了のスクリーンショットを送ってくれるわけでもなく、ログがどこまで残るかも不透明です。未公開の企画映像や社内会議の録画を、無料ツールに放り込むことに抵抗を感じたことがある人は多いはずです。",[11,3243,3244,3245,3248,3249,3252],{},"Zerosend は逆のアプローチを取ります。",[33,3246,3247],{},"動画ファイルを最初から外に出さない","。処理はすべて、あなたがいま開いているこのブラウザ、ローカル端末の CPU と GPU の中だけで完結します。DevTools の Network タブを開いたまま圧縮を実行すれば、動画そのものがアップロードされていないことを自分の目で確認できます。信用してもらう代わりに、",[33,3250,3251],{},"検証可能にする"," — これが Zerosend の基本方針です。",[23,3254,94],{"id":94},[11,3256,3257],{},"操作はシンプルです。",[75,3259,3260,3266,3269,3272,3274],{},[30,3261,3262,104],{},[17,3263,3264],{"href":502},[102,3265,502],{},[30,3267,3268],{},"画面中央のドロップゾーンに動画ファイルをドラッグ&ドロップ、またはクリックして選択 (MP4 \u002F WebM \u002F MOV、最大 500MB)",[30,3270,3271],{},"圧縮強度 (CRF) と解像度を選ぶ",[30,3273,2073],{},[30,3275,3276],{},"処理が終わると「処理完了。あなたのファイルは外に出ていません。」と表示され、ダウンロードボタンから結果を保存できる",[385,3278,3279],{"id":3279},"設定の目安",[27,3281,3282,3288,3294,3300],{},[30,3283,3284,3287],{},[33,3285,3286],{},"高画質 (CRF 23)",": 画質維持を最優先。削減率は 10〜30% 程度。保存用のマスター映像向け",[30,3289,3290,3293],{},[33,3291,3292],{},"標準 (CRF 28)",": 視覚的な劣化は軽微。削減率 40〜70%。ウェブ掲載・SNS 共有に",[30,3295,3296,3299],{},[33,3297,3298],{},"小さめ (CRF 32)",": 多少ぼやけるが容量優先。チャット添付・LINE・メール向け",[30,3301,3302,3305],{},[33,3303,3304],{},"最小 (CRF 36)",": 輪郭が甘くなる。品質より「とにかく送れる」が最優先なとき",[11,3307,3308],{},"解像度は 100 \u002F 75 \u002F 50% から選べます。1080p の素材を 75% にすると、CRF を 1〜2 下げるより確実にサイズが落ちます。",[23,3310,3312],{"id":3311},"仕組み-二段構えのエンジン","仕組み — 二段構えのエンジン",[11,3314,3315],{},"Zerosend の動画圧縮は、単一のエンジンに依存していません。ブラウザの能力を見て、もっとも速い経路を自動で選びます。",[385,3317,3319],{"id":3318},"_1-webcodecs-高速パス","1. WebCodecs (高速パス)",[11,3321,3322,3323,3326,3327,3330],{},"Chrome \u002F Edge \u002F 最近の Safari には ",[102,3324,3325],{},"WebCodecs"," API が実装されており、",[33,3328,3329],{},"GPU 支援の H.264 エンコーダ","をブラウザから直接呼び出せます。Zerosend は対応環境では次のパイプラインで処理します。",[27,3332,3333,3339,3345,3352,3358,3361],{},[30,3334,3335,3338],{},[102,3336,3337],{},"mp4box.js"," で MP4 ファイルを demux",[30,3340,3341,3344],{},[102,3342,3343],{},"VideoDecoder"," でフレームを復号 (ハードウェアアクセラレーション)",[30,3346,3347,3348,3351],{},"必要なら ",[102,3349,3350],{},"OffscreenCanvas"," でリサイズ",[30,3353,3354,3357],{},[102,3355,3356],{},"VideoEncoder"," で H.264 に再エンコード (GPU)",[30,3359,3360],{},"音声はロスレスコピー (AAC のチャンクをそのまま維持)",[30,3362,3363,3366],{},[102,3364,3365],{},"mp4-muxer"," で MP4 に mux し、Blob として出力",[11,3368,3369],{},"数百 MB の動画も数十秒で処理できます。処理後の結果カードに「エンジン: webcodecs」と表示されれば、このパスが走っています。",[385,3371,3373],{"id":3372},"_2-ffmpegwasm-フォールバック","2. ffmpeg.wasm (フォールバック)",[11,3375,3376,3377,3379],{},"WebCodecs が未対応のブラウザ、HEVC などの特殊なコーデック入力、mp4box が parse できない特殊コンテナのときは、自動的に ",[102,3378,625],{}," に切り替わります。完全に CPU で処理するため速度は落ちますが、対応できるフォーマットの幅が段違いに広いのが強みです。ffmpeg-core は Cloudflare R2 から、同一オリジンのパスを経由して 32MB の WASM を取得します。初回のみ時間がかかりますが、2 回目以降はブラウザのキャッシュから復元されます。",[23,3381,180],{"id":180},[11,3383,3384,3387],{},[33,3385,3386],{},"Q. 処理中にインターネット接続が切れたら？","\nA. 動画本体の送受信は発生しないため、圧縮処理自体は継続します。エンジン (ffmpeg.wasm) が未ロードの状態だと初回ダウンロードで失敗しますが、一度読み込んだあとはオフラインでも動作します。",[11,3389,3390,3393],{},[33,3391,3392],{},"Q. 結果のファイルはどこに保存されますか？","\nA. ダウンロードボタンを押したときのブラウザの保存先です。サーバーには何も残りません。結果ファイルはタブを閉じるとメモリから消えます。",[11,3395,3396,3399],{},[33,3397,3398],{},"Q. 画質が思ったより落ちます。","\nA. CRF を下げる (例: 28 → 23)、または解像度の縮小をやめる (50% → 100%) と改善します。素材が 4K なら、100% のまま CRF を下げるより 75% + CRF 25 の方が視覚的なバランスが取れやすいです。",[11,3401,3402,3405],{},[33,3403,3404],{},"Q. iPhone で撮った MOV も処理できますか？","\nA. はい。HEVC (H.265) の場合は ffmpeg.wasm 側のフォールバックに回るため時間がかかりますが、H.264 にトランスコードされた MP4 として出力されます。",[23,3407,225],{"id":225},[27,3409,3410,3417,3422],{},[30,3411,3412,3416],{},[17,3413,3415],{"href":3414},"\u002Ftools\u002Fvideo-to-gif","動画 → GIF"," — SNS の表紙やドキュメント挿入に",[30,3418,3419,3421],{},[17,3420,496],{"href":495}," — 必要な区間だけ切り出してから圧縮すると効率的",[30,3423,3424,3426],{},[17,3425,489],{"href":488}," — MOV \u002F WebM → MP4 など",[11,3428,3429],{},"Zerosend は「日常のちょっとした加工を、あなたの端末で完結させる」ことに徹したツール集です。動画の中身があなたの手元から離れないことを、DevTools で自分の目で確かめてから使ってみてください。",{"title":247,"searchDepth":248,"depth":248,"links":3431},[3432,3433,3436,3440,3441],{"id":3231,"depth":248,"text":3231},{"id":94,"depth":248,"text":94,"children":3434},[3435],{"id":3279,"depth":513,"text":3279},{"id":3311,"depth":248,"text":3312,"children":3437},[3438,3439],{"id":3318,"depth":513,"text":3319},{"id":3372,"depth":513,"text":3373},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の動画圧縮ツールは、動画ファイルをサーバーに送らずブラウザ内で再エンコードしてサイズを削減します。WebCodecs で GPU 支援、未対応環境では ffmpeg.wasm にフォールバック。設計思想と使い方、仕組みを Zerosend 編集部が解説します。",{},"\u002Fblog\u002Fvideo-compress-intro",{"title":3213,"description":3442},"video-compress-intro","blog\u002Fvideo-compress-intro",[3449,2175,3325,272],"動画","613Z3mNi94G9pdH05SAOutm_1Lv_QgpilD4PnVSTRWE",{"id":3452,"title":3453,"author":6,"body":3454,"category":257,"coverImage":258,"description":3619,"draft":260,"extension":261,"locale":262,"meta":3620,"navigation":264,"noindex":260,"path":3621,"publishedAt":266,"seo":3622,"slug":3623,"stem":3624,"tags":3625,"updatedAt":266,"__hash__":3626},"blog\u002Fblog\u002Fvideo-convert-intro.md","動画形式を変換する — \u002Ftools\u002Fvideo-convert の思想と使い方",{"type":8,"value":3455,"toc":3610},[3456,3459,3465,3467,3474,3477,3479,3498,3501,3521,3523,3528,3530,3533,3554,3557,3559,3565,3571,3577,3585,3591,3593],[11,3457,3458],{},"iPhone で撮った MOV を Windows に送りたい、古いビデオカメラの AVI を YouTube に上げたい、ウェブサイト掲載用に WebM 形式に変換して読み込みを軽くしたい。動画の形式変換は、互換性問題を解決する定番作業です。MP4 は最も互換性が高く、迷ったらまず MP4 を選ぶのが安全です。WebM は Chrome \u002F Firefox での再生効率が良く、ウェブページ埋め込みに適しています。",[11,3460,3461,3464],{},[17,3462,3463],{"href":488},"Zerosend の動画形式変換ツール"," は、この変換をブラウザ内で完結させます。",[23,3466,322],{"id":322},[11,3468,3469,3470,3473],{},"動画ファイルは、内容がどのようなものであっても",[33,3471,3472],{},"撮影者・被写体・撮影場所","という 3 種の個人情報を常に含みます。結婚式の映像、社内イベントの録画、研修動画、顧客インタビュー。これらを無料のオンライン変換サービスに預けることは、映像を第三者のサーバーに一時的に置くことと同じです。",[11,3475,3476],{},"Zerosend では変換処理がローカルで完結するため、この構造的リスクを回避できます。",[23,3478,94],{"id":94},[75,3480,3481,3487,3490,3493,3495],{},[30,3482,3483,104],{},[17,3484,3485],{"href":488},[102,3486,488],{},[30,3488,3489],{},"動画ファイルをドラッグ&ドロップ",[30,3491,3492],{},"出力形式 (MP4 \u002F WebM) を選ぶ",[30,3494,351],{},[30,3496,3497],{},"ダウンロード",[23,3499,3500],{"id":3500},"形式の使い分け",[27,3502,3503,3509,3515],{},[30,3504,3505,3508],{},[33,3506,3507],{},"MP4 (H.264 + AAC)",": 汎用。ブラウザ・デバイス・SNS すべてで最も広く対応",[30,3510,3511,3514],{},[33,3512,3513],{},"WebM (VP9 + Opus)",": ブラウザネイティブ。ウェブサイト掲載で効率が良い",[30,3516,3517,3520],{},[33,3518,3519],{},"互換性優先なら MP4",": 疑問があれば MP4 を選ぶのが安全",[23,3522,619],{"id":618},[11,3524,2481,3525,3527],{},[33,3526,625],{}," を使ってブラウザ上で動画を変換します。ffmpeg.wasm は、動画処理の業界標準ツール「FFmpeg」を WebAssembly にコンパイルしたものです。サーバーへのアップロードは一切発生せず、すべての処理があなたの端末のメモリ上で完結します。初回アクセス時に約 30MB の WASM ファイルを読み込みます。",[23,3529,120],{"id":120},[11,3531,3532],{},"ffmpeg.wasm の再エンコードを利用しています。",[27,3534,3535,3538,3548,3551],{},[30,3536,3537],{},"入力動画を ffmpeg FS に書き込み",[30,3539,3540,3543,3544,3547],{},[102,3541,3542],{},"-c:v libx264 -c:a aac"," (MP4) または ",[102,3545,3546],{},"-c:v libvpx-vp9 -c:a libopus"," (WebM) で再エンコード",[30,3549,3550],{},"出力を Blob としてメモリに展開",[30,3552,3553],{},"ダウンロード用 URL を生成",[11,3555,3556],{},"再エンコードのため処理時間は入力の長さに比例します。30 秒の動画で数秒〜数十秒が目安です。",[23,3558,180],{"id":180},[11,3560,3561,3564],{},[33,3562,3563],{},"Q. 変換すると画質は落ちますか？","\nA. 再エンコードするため、理論上は多少劣化します。ただし本ツールのプリセットは実用レベルでは視覚的にほぼわからない品質設定です。",[11,3566,3567,3570],{},[33,3568,3569],{},"Q. 音声は変換後も保持されますか？","\nA. はい。MP4 では AAC、WebM では Opus コーデックで音声を保持します。",[11,3572,3573,3576],{},[33,3574,3575],{},"Q. コーデック指定や高度なオプションを変えたい","\nA. 本ツールは一般用途向けのプリセットで固定しています。細かい制御が必要なら、別のプロフェッショナル向けツールを検討してください。",[11,3578,3579,705,3582,3584],{},[33,3580,3581],{},"Q. 音声のみ抽出したい",[17,3583,661],{"href":288}," をお使いください。",[11,3586,3587,3590],{},[33,3588,3589],{},"Q. 対応していない入力形式","\nA. ffmpeg がサポートする範囲ですが、特殊コーデック (Pro Res \u002F DNxHD など) は未対応の場合があります。",[23,3592,225],{"id":225},[27,3594,3595,3600,3605],{},[30,3596,3597,3599],{},[17,3598,503],{"href":502}," — 変換と同時にサイズも削減したいとき",[30,3601,3602,3604],{},[17,3603,496],{"href":495}," — 変換前に必要な区間だけ切り出す",[30,3606,3607,3609],{},[17,3608,661],{"href":288}," — 動画から音声だけ抽出して変換",{"title":247,"searchDepth":248,"depth":248,"links":3611},[3612,3613,3614,3615,3616,3617,3618],{"id":322,"depth":248,"text":322},{"id":94,"depth":248,"text":94},{"id":3500,"depth":248,"text":3500},{"id":618,"depth":248,"text":619},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の動画形式変換ツールは、MOV \u002F WebM \u002F MKV \u002F AVI などの動画をサーバーに送らずブラウザ内で MP4 など互換性の高い形式に変換します。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fvideo-convert-intro",{"title":3453,"description":3619},"video-convert-intro","blog\u002Fvideo-convert-intro",[3449,525,272],"uen8HCCs7nwIfruqSzlnOQeM7PeUONPCTqhbCV48i8I",{"id":3628,"title":3629,"author":6,"body":3630,"category":257,"coverImage":258,"description":3867,"draft":260,"extension":261,"locale":262,"meta":3868,"navigation":264,"noindex":260,"path":3869,"publishedAt":266,"seo":3870,"slug":3871,"stem":3872,"tags":3873,"updatedAt":266,"__hash__":3875},"blog\u002Fblog\u002Fvideo-to-gif-intro.md","動画を GIF に変換する — \u002Ftools\u002Fvideo-to-gif の思想と使い方",{"type":8,"value":3631,"toc":3857},[3632,3635,3640,3642,3668,3672,3675,3695,3701,3705,3711,3714,3716,3738,3741,3744,3770,3772,3783,3802,3805,3807,3816,3826,3832,3838,3840],[11,3633,3634],{},"画面操作の説明を Slack で共有したい、バグの再現手順を issue に貼りたい、X のタイムラインで動く画像にしたい。動画が重くて共有しづらい場面で GIF は今でも現役です。",[11,3636,3637,3464],{},[17,3638,3639],{"href":3414},"Zerosend の 動画 → GIF 変換ツール",[23,3641,25],{"id":25},[27,3643,3644,3650,3656,3662],{},[30,3645,3646,3649],{},[33,3647,3648],{},"チャット・SNS への操作デモ共有",": Slack・Discord・X では動画より GIF の方が自動再生されやすく、見てもらいやすい",[30,3651,3652,3655],{},[33,3653,3654],{},"GitHub Issue へのバグ再現添付",": 再現手順を GIF にすると、文章だけより圧倒的に伝わります",[30,3657,3658,3661],{},[33,3659,3660],{},"製品マニュアルや説明資料",": 使い方の短いアニメを埋め込むとドキュメントの分かりやすさが上がります",[30,3663,3664,3667],{},[33,3665,3666],{},"SNS 投稿用のループ動画",": 短い映像をループさせてタイムラインで目を引く素材にできます",[23,3669,3671],{"id":3670},"gif-の特性を理解して使う","GIF の特性を理解して使う",[11,3673,3674],{},"GIF には独自の制約があります。",[27,3676,3677,3683,3689],{},[30,3678,3679,3682],{},[33,3680,3681],{},"音声なし",": GIF 形式の仕様上、音声トラックは含められません",[30,3684,3685,3688],{},[33,3686,3687],{},"色数は最大 256 色",": フルカラー動画に比べて色表現が限られます。グラデーションや写真素材はバンディングが出やすい",[30,3690,3691,3694],{},[33,3692,3693],{},"ファイルサイズが大きくなりやすい",": 同じ長さ・解像度の動画 MP4 と比べると、GIF は数倍のサイズになることが多い",[11,3696,3697,3698,3700],{},"画面操作録画やシンプルなアニメーションには向いています。風景動画など色が複雑な素材は ",[17,3699,503],{"href":502}," で MP4 のままにするのが適切です。",[23,3702,3704],{"id":3703},"なぜブラウザ内で-gif-変換するのか","なぜブラウザ内で GIF 変換するのか",[11,3706,3707,3708,1253],{},"画面録画の中身は、UI スクリーンショット以上に情報を含みます。操作中に映る URL・ユーザー名・通知内容・顧客の名前。これらを含む動画を GIF 変換サービスにアップロードすると、",[33,3709,3710],{},"動画の全フレームが相手のサーバーに渡ります",[11,3712,3713],{},"Zerosend では変換処理をローカルで行うため、そのリスクがありません。DevTools で通信が発生していないことを確認してから使ってください。",[23,3715,94],{"id":94},[75,3717,3718,3724,3727,3730,3733,3736],{},[30,3719,3720,104],{},[17,3721,3722],{"href":3414},[102,3723,3414],{},[30,3725,3726],{},"動画ファイルをドラッグ&ドロップ (MP4 \u002F WebM \u002F MOV)",[30,3728,3729],{},"切り出し区間 (開始時刻・終了時刻) を指定",[30,3731,3732],{},"フレームレート (5 \u002F 10 \u002F 15fps) と幅を選択",[30,3734,3735],{},"「GIF 化を開始する」をクリック",[30,3737,3497],{},[23,3739,3740],{"id":3740},"サイズを抑えるコツ",[11,3742,3743],{},"GIF は形式として大きくなりがちです。以下の指針で調整してください。",[27,3745,3746,3752,3758,3764],{},[30,3747,3748,3751],{},[33,3749,3750],{},"区間は短く",": 3〜6 秒が実用上の上限",[30,3753,3754,3757],{},[33,3755,3756],{},"幅は 480px 以下",": Slack・Twitter で使うなら 480px 前後で十分",[30,3759,3760,3763],{},[33,3761,3762],{},"フレームレートは 10fps",": 15fps 以上は体感差が小さくサイズだけ増える",[30,3765,3766,3769],{},[33,3767,3768],{},"色数は制限",": ツール側で最適化しているが、単調な色味の動画ほどうまくハマる",[23,3771,120],{"id":120},[11,3773,3774,3775,3778,3779,3782],{},"ffmpeg.wasm で動画を復号し、",[102,3776,3777],{},"palettegen"," と ",[102,3780,3781],{},"paletteuse"," フィルタを使って GIF の 256 色パレットに最適化して書き出しています。",[27,3784,3785,3787,3793,3799],{},[30,3786,3537],{},[30,3788,3789,3792],{},[102,3790,3791],{},"-vf \"fps=10,scale=480:-1:flags=lanczos,palettegen\""," で最適パレット生成",[30,3794,3795,3798],{},[102,3796,3797],{},"-vf \"fps=10,scale=480:-1:flags=lanczos,paletteuse\""," で GIF エンコード",[30,3800,3801],{},"Blob としてメモリに展開",[11,3803,3804],{},"2 パス処理をブラウザ内で完結させているため、サーバー送信は一切発生しません。",[23,3806,180],{"id":180},[11,3808,3809,3812,3813,3815],{},[33,3810,3811],{},"Q. GIF が想像より大きくなるのはなぜ？","\nA. GIF の圧縮効率は MP4 より大幅に劣ります。色数が多い・解像度が高い・再生時間が長いほどサイズが跳ね上がります。区間を短く・幅を小さく・フレームレートを低くすることで抑えられます。30 秒超なら ",[17,3814,503],{"href":502}," で軽量 MP4 のままにするのをお勧めします。",[11,3817,3818,3821,3822,3825],{},[33,3819,3820],{},"Q. 最適なフレームレートは？","\nA. 画面操作デモや UI アニメーションなら ",[33,3823,3824],{},"10fps"," で十分です。15fps 以上は体感差が小さくサイズだけ増えます。スポーツや動きが速い動画なら 15fps を試してみてください。",[11,3827,3828,3831],{},[33,3829,3830],{},"Q. 音声は入りますか？","\nA. GIF 仕様上、音声は含められません。音声付きで共有したいなら動画のままが適切です。",[11,3833,3834,3837],{},[33,3835,3836],{},"Q. 透過 GIF は作れますか？","\nA. 1 ビット透過なら可能ですが、動画ソースからの抽出は実用的でないため、本ツールでは非対応です。",[23,3839,225],{"id":225},[27,3841,3842,3847,3852],{},[30,3843,3844,3846],{},[17,3845,496],{"href":495}," — GIF 化前に必要な区間だけ切り出す",[30,3848,3849,3851],{},[17,3850,503],{"href":502}," — GIF の代わりに軽量 MP4 にする選択肢",[30,3853,3854,3856],{},[17,3855,489],{"href":488}," — 他形式への変換",{"title":247,"searchDepth":248,"depth":248,"links":3858},[3859,3860,3861,3862,3863,3864,3865,3866],{"id":25,"depth":248,"text":25},{"id":3670,"depth":248,"text":3671},{"id":3703,"depth":248,"text":3704},{"id":94,"depth":248,"text":94},{"id":3740,"depth":248,"text":3740},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の 動画 → GIF 変換ツールは、動画をサーバーに送らずブラウザ内で GIF アニメに変換します。SNS・ドキュメント・Slack 用の短尺アニメ作成に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fvideo-to-gif-intro",{"title":3629,"description":3867},"video-to-gif-intro","blog\u002Fvideo-to-gif-intro",[3449,3874,272],"GIF","KP5LnDJg0eajQ42qALBS-sWzXFmFrGx0dQo1I45wKAc",{"id":3877,"title":3878,"author":6,"body":3879,"category":257,"coverImage":258,"description":4072,"draft":260,"extension":261,"locale":262,"meta":4073,"navigation":264,"noindex":260,"path":4074,"publishedAt":266,"seo":4075,"slug":4076,"stem":4077,"tags":4078,"updatedAt":266,"__hash__":4079},"blog\u002Fblog\u002Fvideo-trim-intro.md","動画をトリミング (切り出し) する — \u002Ftools\u002Fvideo-trim の思想と使い方",{"type":8,"value":3880,"toc":4063},[3881,3884,3889,3891,3923,3925,3932,3935,3937,3956,3960,3966,3969,3971,3979,3994,3997,3999,4007,4013,4022,4027,4033,4044,4046],[11,3882,3883],{},"60 分の会議録画から「重要な 3 分」だけ共有したい、旅行動画の最初の手ブレ部分をカットしたい、画面録画の誤操作部分を除きたい。動画のトリミングは、共有前の定番作業です。",[11,3885,3886,290],{},[17,3887,3888],{"href":495},"Zerosend の動画トリミングツール",[23,3890,542],{"id":542},[27,3892,3893,3899,3905,3911,3917],{},[30,3894,3895,3898],{},[33,3896,3897],{},"会議録画の抜粋共有",": 60 分の Zoom 録画から決議箇所の 5 分だけを切り出してチームに送る",[30,3900,3901,3904],{},[33,3902,3903],{},"旅行動画の冒頭カット",": 起動直後の手ブレや暗転部分を除いて本編から始める",[30,3906,3907,3910],{},[33,3908,3909],{},"画面録画の整理",": 操作説明動画の冒頭・末尾の余分な操作を削除",[30,3912,3913,3916],{},[33,3914,3915],{},"SNS 投稿用にカット",": 長い動画から見せたい場面だけを 60 秒以内に切り出す",[30,3918,3919,3922],{},[33,3920,3921],{},"インタビュー動画の引用",": 収録全体から発言箇所だけを抜粋してプレゼンに使う",[23,3924,583],{"id":583},[11,3926,3927,3928,3931],{},"トリミングしたい動画ほど「切り取りたい箇所」より「切り捨てたい箇所」が大きいものです。60 分の会議録画から 3 分を抽出する場合、",[33,3929,3930],{},"残りの 57 分分の機密発言もいったん相手サーバーにアップロードする","ことになります。",[11,3933,3934],{},"これはプライバシー観点で非合理的です。Zerosend はトリミング処理をローカルで行うため、アップロードそのものが発生しません。入力動画が数 GB あっても、ネットワークには何も流れません。",[23,3936,94],{"id":94},[75,3938,3939,3945,3948,3951,3953],{},[30,3940,3941,104],{},[17,3942,3943],{"href":495},[102,3944,495],{},[30,3946,3947],{},"動画をドラッグ&ドロップ",[30,3949,3950],{},"開始時刻・終了時刻を指定 (スライダーまたは秒数入力)",[30,3952,612],{},[30,3954,3955],{},"切り出された動画をダウンロード",[23,3957,3959],{"id":3958},"ffmpegwasm-とは","ffmpeg.wasm とは",[11,3961,3962,3963,3965],{},"ffmpeg は動画・音声処理の世界標準ツールで、もともとはターミナルで使うコマンドラインプログラムです。",[33,3964,625],{}," はこれを WebAssembly (WASM) にコンパイルしたもので、インストール不要でブラウザ上で動作します。",[11,3967,3968],{},"Zerosend はこの ffmpeg.wasm を使って、ネイティブアプリに近い動画処理をブラウザ内で実現しています。初回アクセス時は約 30MB の WASM ファイルを取得するため少し時間がかかりますが、取得後はオフラインでも動作します。",[23,3970,120],{"id":120},[11,3972,634,3973,3975,3976,3978],{},[102,3974,637],{}," (開始) \u002F ",[102,3977,641],{}," (終了) オプションを使って指定区間を切り出します。",[27,3980,3981,3983,3989],{},[30,3982,3537],{},[30,3984,3985,3988],{},[102,3986,3987],{},"-ss \u003Cstart> -i input.mp4 -to \u003Cend> -c copy output.mp4"," で再エンコードなしに切り出し",[30,3990,3991,3993],{},[102,3992,708],{}," によりロスレス抽出 (処理も高速)",[11,3995,3996],{},"再エンコードしないため、画質劣化なし・処理時間も入力サイズの数%程度で完了します。",[23,3998,180],{"id":180},[11,4000,4001,705,4004,4006],{},[33,4002,4003],{},"Q. フレーム単位の精度は？",[102,4005,708],{}," でキーフレーム境界に揃える仕様のため、GOP サイズに依存します。秒単位以上の精度が必要なら問題なく使えますが、フレーム単位の精度が必要な場合は本ツール内で再エンコードオプションを有効化できます (処理時間が増加)。",[11,4008,4009,4012],{},[33,4010,4011],{},"Q. 対応している動画形式は？","\nA. MP4・MOV・AVI・WebM・MKV など主要な形式に対応しています。スマートフォンで撮影した MP4 や MOV ファイルはそのまま使えます。",[11,4014,4015,4018,4019,4021],{},[33,4016,4017],{},"Q. ファイルサイズの上限はありますか？","\nA. デバイスのメモリに依存します。PC (8GB RAM) なら 2〜4GB 程度まで問題なく処理できます。大容量ファイルは事前に ",[17,4020,503],{"href":502}," でサイズを小さくしておくと安定します。",[11,4023,4024,4026],{},[33,4025,714],{},"\nA. 現状は 1 区間のみです。複数区間を扱う場合は 1 区間ずつ抽出後、別途結合ツールを使ってください。",[11,4028,4029,4032],{},[33,4030,4031],{},"Q. 音声も一緒に切り出される？","\nA. はい。映像と音声は同じ区間でセット抽出されます。",[11,4034,4035,705,4038,4040,4041,4043],{},[33,4036,4037],{},"Q. 音声だけ切り出したい場合は？",[17,4039,482],{"href":481}," を使うか、本ツールで切り出した動画から音声だけを ",[17,4042,661],{"href":288}," で抽出してください。",[23,4045,225],{"id":225},[27,4047,4048,4053,4058],{},[30,4049,4050,4052],{},[17,4051,503],{"href":502}," — トリミング後にサイズ削減",[30,4054,4055,4057],{},[17,4056,3415],{"href":3414}," — 短い区間を GIF アニメに",[30,4059,4060,4062],{},[17,4061,489],{"href":488}," — 形式違いへの変換",{"title":247,"searchDepth":248,"depth":248,"links":4064},[4065,4066,4067,4068,4069,4070,4071],{"id":542,"depth":248,"text":542},{"id":583,"depth":248,"text":583},{"id":94,"depth":248,"text":94},{"id":3958,"depth":248,"text":3959},{"id":120,"depth":248,"text":120},{"id":180,"depth":248,"text":180},{"id":225,"depth":248,"text":225},"Zerosend の動画トリミングツールは、動画をサーバーに送らずブラウザ内で任意の区間だけ切り出します。不要な前後や長い会議録画から特定区間のみを共有したいときに。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fvideo-trim-intro",{"title":3878,"description":4072},"video-trim-intro","blog\u002Fvideo-trim-intro",[3449,770,272],"flNtXZjV9WjTykXy1_JxOHLdiVIRg7yWC_Xq2LTpcU8",{"id":4081,"title":4082,"author":6,"body":4083,"category":257,"coverImage":258,"description":4374,"draft":260,"extension":261,"locale":262,"meta":4375,"navigation":264,"noindex":260,"path":4376,"publishedAt":4377,"seo":4378,"slug":4379,"stem":4380,"tags":4381,"updatedAt":4377,"__hash__":4385},"blog\u002Fblog\u002Fbrowser-only-limits.md","ブラウザ内でファイル処理は「どこまで」できるか — 2026 年の現在地",{"type":8,"value":4084,"toc":4343},[4085,4088,4092,4096,4107,4110,4113,4116,4120,4131,4135,4142,4146,4155,4159,4177,4180,4184,4187,4191,4197,4201,4204,4208,4212,4219,4223,4230,4234,4237,4241,4245,4255,4259,4266,4270,4281,4290,4293,4297,4311,4314,4317,4324,4332],[11,4086,4087],{},"「ファイルをサーバーに送らずに処理する」は、2026 年のブラウザでかなりの範囲が実現可能です。ただし万能ではありません。Zerosend が採用している技術と、その限界を正直に整理します。",[23,4089,4091],{"id":4090},"なぜブラウザだけで処理する選択を採るのか","なぜ「ブラウザだけで処理する」選択を採るのか",[385,4093,4095],{"id":4094},"送らないので漏れないという直球の設計","送らないので漏れない、という直球の設計",[11,4097,4098,4099,4102,4103,4106],{},"サーバー送信を伴わない構造そのものが、",[33,4100,4101],{},"個人情報漏洩・誤操作・第三者共有"," のリスクを原理的にゼロにします。「漏れない仕組み」を語るより、",[33,4104,4105],{},"漏れる場所をなくす","ほうが検証しやすい設計です。",[385,4108,4109],{"id":4109},"設定や権限に依存しない単純さ",[11,4111,4112],{},"サーバー側で暗号化キーを守る \u002F ログを消す \u002F バックアップから除外する、という細かい運用は継続的な手間がかかります。ブラウザ内で完結するなら、そもそもその運用自体が発生しません。",[23,4114,4115],{"id":4115},"使っている技術スタック",[385,4117,4119],{"id":4118},"canvas-api-画像の基礎処理","Canvas API — 画像の基礎処理",[11,4121,4122,4123,4126,4127,4130],{},"2D 描画と画像ピクセル操作の標準 API。Zerosend の画像圧縮・リサイズ・形式変換はすべて Canvas 経由です。",[102,4124,4125],{},"drawImage()"," で任意の描画、",[102,4128,4129],{},"toBlob()"," で指定フォーマットに書き出せます。",[385,4132,4134],{"id":4133},"web-worker-メインスレッドを止めない","Web Worker — メインスレッドを止めない",[11,4136,4137,4138,4141],{},"重い処理をメインスレッドで回すと UI がフリーズします。Web Worker で別スレッドに逃がすことでスムーズな UX を維持します。",[102,4139,4140],{},"browser-image-compression"," のように Worker を内包しているライブラリは、そのまま使うだけでメインスレッドを解放してくれます。",[385,4143,4145],{"id":4144},"webassembly-ffmpeg-pdf-系ライブラリの移植","WebAssembly — ffmpeg \u002F pdf 系ライブラリの移植",[11,4147,4148,4149,4151,4152,4154],{},"C \u002F C++ で書かれたネイティブライブラリを WASM 化することで、ブラウザで直接実行できます。Zerosend では ",[33,4150,625],{}," (動画・音声) と ",[33,4153,2094],{}," (PDF レンダリング) が WASM ベースです。",[385,4156,4158],{"id":4157},"file-system-access-api-blob-入出力","File System Access API \u002F Blob — 入出力",[11,4160,4161,4162,638,4165,4168,4169,4172,4173,4176],{},"モダンブラウザは ",[102,4163,4164],{},"showOpenFilePicker()",[102,4166,4167],{},"showSaveFilePicker()"," で OS のファイル選択ダイアログを呼べます。非対応の環境でも ",[102,4170,4171],{},"\u003Cinput type=\"file\">"," + ",[102,4174,4175],{},"Blob + URL.createObjectURL"," でダウンロードできるため、互換性の最低ラインは広いです。",[23,4178,4179],{"id":4179},"できること",[385,4181,4183],{"id":4182},"数-mb-数十-mb-のファイル処理","数 MB 〜数十 MB のファイル処理",[11,4185,4186],{},"現代のブラウザは 100MB 級のファイルでも (メモリ次第で) 安定して扱えます。JPG\u002FPNG 画像の圧縮・リサイズ・一括 ZIP 生成は問題なく動作します。",[385,4188,4190],{"id":4189},"バッチ処理-zip-生成を含む","バッチ処理 (ZIP 生成を含む)",[11,4192,4193,4196],{},[102,4194,4195],{},"jszip"," を使えば複数ファイルの圧縮まとめもブラウザ内で完結します。100 ファイル程度の一括処理は実用範囲です。",[385,4198,4200],{"id":4199},"逆圧縮形式変換","逆圧縮・形式変換",[11,4202,4203],{},"JPG → WebP、HEIC → JPG、PDF → PNG、MP4 → GIF などの変換は、すべてブラウザ内で実行できます。",[23,4205,4207],{"id":4206},"苦手なことできないこと","苦手なこと・できないこと",[385,4209,4211],{"id":4210},"数-gb-級の動画処理はメモリが持たない","数 GB 級の動画処理はメモリが持たない",[11,4213,4214,4215,4218],{},"ブラウザのプロセスメモリ上限はだいたい 2〜4 GB 程度。それ以上の動画をまるごと処理するのは困難です。",[33,4216,4217],{},"1 GB を超える動画はデスクトップツール"," (ffmpeg CLI 等) のほうが安定します。",[385,4220,4222],{"id":4221},"機械学習推論は遅い-onnx-runtime-web-は軽量モデル限定","機械学習推論は遅い (ONNX Runtime Web は軽量モデル限定)",[11,4224,4225,4226,4229],{},"ONNX Runtime Web や TensorFlow.js で推論は可能ですが、",[33,4227,4228],{},"数 GB 級のモデル","はブラウザで回すとかなり遅く、UX が実用的ではありません。軽量モデル (数百 MB) に限定するか、サーバー推論と割り切るのが現実的です。",[385,4231,4233],{"id":4232},"os-ネイティブ機能への直接アクセス","OS ネイティブ機能への直接アクセス",[11,4235,4236],{},"ブラウザはサンドボックス内で動くので、OS のファイルシステム全体を書き換えるような処理・プロセス起動はできません。セキュリティの観点からも妥当な制約です。",[23,4238,4240],{"id":4239},"zerosend-での実装のコツ-開発者向け","Zerosend での実装のコツ (開発者向け)",[385,4242,4244],{"id":4243},"ドメイン層を-ui-から分離する","ドメイン層を UI から分離する",[11,4246,4247,4250,4251,4254],{},[102,4248,4249],{},"domain\u002Fprocessors\u002F"," 配下に",[33,4252,4253],{},"純粋関数","を置き、Vue \u002F DOM API に依存させない設計にしています。テストが書きやすく、将来的に CLI 化・API 化もしやすくなります。",[385,4256,4258],{"id":4257},"web-worker-に重い処理を分離する判断基準","Web Worker に重い処理を分離する判断基準",[11,4260,4261,4262,4265],{},"目安は ",[33,4263,4264],{},"100 ms を超える処理はすべて Worker","。メインスレッドがそれ以上ブロックすると、ユーザー操作への応答 (クリック・スクロール) が目に見えて遅延します。",[385,4267,4269],{"id":4268},"csp-を破らずに-wasm-を読み込む","CSP を破らずに WASM を読み込む",[11,4271,4272,4273,4276,4277,4280],{},"CSP (Content Security Policy) に ",[102,4274,4275],{},"wasm-unsafe-eval"," を追加する必要があります。Zerosend では meta と ",[102,4278,4279],{},"_headers"," の両方に設定し、本番でも正しく動作することを確認しています。",[4282,4283,4288],"pre",{"className":4284,"code":4286,"language":4287},[4285],"language-text","Content-Security-Policy: script-src 'self' 'wasm-unsafe-eval'\n","text",[102,4289,4286],{"__ignoreMap":247},[23,4291,4292],{"id":4292},"今後の展望",[385,4294,4296],{"id":4295},"webgpu-opfs-の成熟","WebGPU \u002F OPFS の成熟",[27,4298,4299,4305],{},[30,4300,4301,4304],{},[33,4302,4303],{},"WebGPU",": GPU を直接使える API。機械学習推論や 3D レンダリングで大きく速度改善が見込まれます",[30,4306,4307,4310],{},[33,4308,4309],{},"OPFS (Origin Private File System)",": Origin ごとにブラウザが管理する高速ファイル領域。大容量ファイル処理時の中間ストレージに使えます",[11,4312,4313],{},"これらが広く使える前提になれば、現状「苦手」としている領域の多くがブラウザだけで片付くようになります。",[23,4315,4316],{"id":4316},"まとめ",[11,4318,4319,4320,4323],{},"ブラウザ内ファイル処理は ",[33,4321,4322],{},"Canvas \u002F Web Worker \u002F WebAssembly \u002F File System Access API"," の組み合わせで、日常的な軽作業のほぼ全域をカバーできます。GB 級や重い ML 推論は依然として苦手ですが、Zerosend が対象とする画像・PDF・音声・短い動画の範囲では実用レベルです。",[11,4325,4326,4327,4331],{},"この設計の結果、",[17,4328,4330],{"href":4329},"\u002F#tools","Zerosend のツール群"," はサーバーに何も送らずに動作し、DevTools で自ら検証できる透明性を持っています。",[11,4333,4334,4335,638,4339],{},"関連: ",[17,4336,4338],{"href":4337},"\u002Fblog\u002Fwhy-browser-only","なぜ Zerosend はブラウザ内処理にこだわるのか",[17,4340,4342],{"href":4341},"\u002Fguide\u002Fprivacy-online-tools","ピラー記事",{"title":247,"searchDepth":248,"depth":248,"links":4344},[4345,4349,4355,4360,4365,4370,4373],{"id":4090,"depth":248,"text":4091,"children":4346},[4347,4348],{"id":4094,"depth":513,"text":4095},{"id":4109,"depth":513,"text":4109},{"id":4115,"depth":248,"text":4115,"children":4350},[4351,4352,4353,4354],{"id":4118,"depth":513,"text":4119},{"id":4133,"depth":513,"text":4134},{"id":4144,"depth":513,"text":4145},{"id":4157,"depth":513,"text":4158},{"id":4179,"depth":248,"text":4179,"children":4356},[4357,4358,4359],{"id":4182,"depth":513,"text":4183},{"id":4189,"depth":513,"text":4190},{"id":4199,"depth":513,"text":4200},{"id":4206,"depth":248,"text":4207,"children":4361},[4362,4363,4364],{"id":4210,"depth":513,"text":4211},{"id":4221,"depth":513,"text":4222},{"id":4232,"depth":513,"text":4233},{"id":4239,"depth":248,"text":4240,"children":4366},[4367,4368,4369],{"id":4243,"depth":513,"text":4244},{"id":4257,"depth":513,"text":4258},{"id":4268,"depth":513,"text":4269},{"id":4292,"depth":248,"text":4292,"children":4371},[4372],{"id":4295,"depth":513,"text":4296},{"id":4316,"depth":248,"text":4316},"ブラウザだけで画像・PDF・動画を扱うには、どんな技術を使いどこまでできるのか。Canvas \u002F Web Worker \u002F WebAssembly \u002F File System Access API の採用ポイントと、率直な限界を整理します。",{},"\u002Fblog\u002Fbrowser-only-limits","2026-04-19",{"title":4082,"description":4374},"browser-only-limits","blog\u002Fbrowser-only-limits",[4382,4383,4384],"WebAssembly","ブラウザ","技術解説","DVMRpha441VjgXVwUg-Ky9ljmdcZEo-shW86ze3x7Uo",{"id":4387,"title":4388,"author":6,"body":4389,"category":257,"coverImage":258,"description":5156,"draft":260,"extension":261,"locale":262,"meta":5157,"navigation":264,"noindex":260,"path":5158,"publishedAt":4377,"seo":5159,"slug":5160,"stem":5161,"tags":5162,"updatedAt":4377,"__hash__":5166},"blog\u002Fblog\u002Ffavicon-complete-guide-2026.md","ファビコン 完全ガイド 2026 — サイズ・形式・HTML 設置まで全部入り",{"type":8,"value":4390,"toc":5116},[4391,4398,4402,4409,4430,4434,4437,4441,4445,4468,4475,4482,4485,4499,4503,4506,4513,4605,4609,4616,4619,4628,4632,4635,4642,4802,4806,4812,4816,4821,4964,4971,4979,4983,4987,4990,4994,4997,5000,5010,5014,5020,5024,5027,5060,5063,5066,5070,5073,5077,5086,5092,5098,5100,5107,5113],[11,4392,4393,4394,4397],{},"ファビコン (favicon) は地味なアセットですが、種類・サイズ・形式の選択肢が多く、毎回「結局どれが必要なんだっけ?」となる人も多いはずです。本記事では 2026 年時点で本当に必要なアイコン一式と、HTML への組み込み、Zerosend の ",[17,4395,4396],{"href":3025},"ファビコン生成ツール"," の活用法を整理します。",[23,4399,4401],{"id":4400},"ファビコンとは何か-1-分で復習","ファビコンとは何か (1 分で復習)",[385,4403,4405,4408],{"id":4404},"link-タグで参照される機能の総称",[102,4406,4407],{},"\u003Clink>"," タグで参照される機能の総称",[11,4410,4411,4412,4415,4416,4419,4420,638,4423,638,4426,4429],{},"ファビコンはブラウザのタブ表示に使われるアイコン、だけではなく",[33,4413,4414],{},"タブ \u002F ブックマーク \u002F PWA ホーム画面 \u002F 検索結果","など複数の文脈で使われる画像の総称です。",[102,4417,4418],{},"\u003Chead>"," 内の ",[102,4421,4422],{},"\u003Clink rel=\"icon\">",[102,4424,4425],{},"\u003Clink rel=\"apple-touch-icon\">",[102,4427,4428],{},"\u003Clink rel=\"manifest\">"," で参照されるアセット群です。",[385,4431,4433],{"id":4432},"表示場所によって最適なサイズ形式が違う","表示場所によって最適なサイズ・形式が違う",[11,4435,4436],{},"タブ用には 16×16 \u002F 32×32 の小さいアイコンが必要ですが、iPhone のホーム画面には 180×180 の PNG、Android の PWA には 192×192 と 512×512 の PNG が必要です。場所ごとに要件が違います。",[23,4438,4440],{"id":4439},"_2026-年時点で本当に必要なアイコン","2026 年時点で本当に必要なアイコン",[385,4442,4444],{"id":4443},"必須-3-つ","必須 3 つ",[27,4446,4447,4453,4459],{},[30,4448,4449,4452],{},[102,4450,4451],{},"favicon.ico"," — デスクトップブラウザのタブ \u002F ブックマーク (16\u002F32\u002F48px のマルチサイズ)",[30,4454,4455,4458],{},[102,4456,4457],{},"apple-touch-icon.png"," (180×180) — iOS のホーム画面",[30,4460,4461,638,4464,4467],{},[102,4462,4463],{},"icon-192.png",[102,4465,4466],{},"icon-512.png"," — Android \u002F PWA 対応",[385,4469,4471,4472],{"id":4470},"推奨-faviconsvg","推奨: ",[102,4473,4474],{},"favicon.svg",[11,4476,4477,4478,4481],{},"モダンブラウザ (Chrome \u002F Firefox \u002F Safari の最新版) は SVG ファビコンに対応済みです。ベクターなのでどのサイズでもシャープに表示されます。ダークモード切替にも対応できるので、2026 年は ",[33,4479,4480],{},"SVG を第一選択","にして ICO をフォールバックにする運用がおすすめです。",[385,4483,4484],{"id":4484},"不要になったもの",[27,4486,4487,4493],{},[30,4488,4489,4492],{},[102,4490,4491],{},"browserconfig.xml"," (Windows 8\u002F10 タイル用) — IE 系と一緒に役目を終えています",[30,4494,4495,4498],{},[102,4496,4497],{},"*.png"," の 70×70 \u002F 150×150 \u002F 310×310 (IE\u002FEdge Legacy 向け)",[23,4500,4502],{"id":4501},"svg-ファビコンのメリットと対応ブラウザ","SVG ファビコンのメリットと対応ブラウザ",[385,4504,4505],{"id":4505},"ダークモード自動切替",[11,4507,4508,4509,4512],{},"SVG 内に ",[102,4510,4511],{},"@media (prefers-color-scheme: dark)"," のスタイルを書くだけで、OS のダークモードに合わせて色を切り替えられます。Chrome \u002F Firefox の最新版は対応済みです。",[4282,4514,4518],{"className":4515,"code":4516,"language":4517,"meta":247,"style":247},"language-html shiki shiki-themes github-light github-dark","\u003Csvg>\n  \u003Cstyle>\n    @media (prefers-color-scheme: dark) {\n      .logo { fill: #fff; }\n    }\n  \u003C\u002Fstyle>\n  \u003Crect class=\"logo\" \u002F>\n\u003C\u002Fsvg>\n","html",[102,4519,4520,4536,4546,4551,4557,4563,4573,4595],{"__ignoreMap":247},[4521,4522,4525,4529,4533],"span",{"class":4523,"line":4524},"line",1,[4521,4526,4528],{"class":4527},"sVt8B","\u003C",[4521,4530,4532],{"class":4531},"s9eBZ","svg",[4521,4534,4535],{"class":4527},">\n",[4521,4537,4538,4541,4544],{"class":4523,"line":248},[4521,4539,4540],{"class":4527},"  \u003C",[4521,4542,4543],{"class":4531},"style",[4521,4545,4535],{"class":4527},[4521,4547,4548],{"class":4523,"line":513},[4521,4549,4550],{"class":4527},"    @media (prefers-color-scheme: dark) {\n",[4521,4552,4554],{"class":4523,"line":4553},4,[4521,4555,4556],{"class":4527},"      .logo { fill: #fff; }\n",[4521,4558,4560],{"class":4523,"line":4559},5,[4521,4561,4562],{"class":4527},"    }\n",[4521,4564,4566,4569,4571],{"class":4523,"line":4565},6,[4521,4567,4568],{"class":4527},"  \u003C\u002F",[4521,4570,4543],{"class":4531},[4521,4572,4535],{"class":4527},[4521,4574,4576,4578,4581,4585,4588,4592],{"class":4523,"line":4575},7,[4521,4577,4540],{"class":4527},[4521,4579,4580],{"class":4531},"rect",[4521,4582,4584],{"class":4583},"sScJk"," class",[4521,4586,4587],{"class":4527},"=",[4521,4589,4591],{"class":4590},"sZZnC","\"logo\"",[4521,4593,4594],{"class":4527}," \u002F>\n",[4521,4596,4598,4601,4603],{"class":4523,"line":4597},8,[4521,4599,4600],{"class":4527},"\u003C\u002F",[4521,4602,4532],{"class":4531},[4521,4604,4535],{"class":4527},[385,4606,4608],{"id":4607},"アニメーション-限定的","アニメーション (限定的)",[11,4610,4611,4612,4615],{},"SMIL \u002F CSS アニメーションは技術的には可能ですが、ブラウザが",[33,4613,4614],{},"アイドル時には動かさない","等の最適化を入れるケースが多く、過信は禁物です。原則は静止画として設計しましょう。",[385,4617,4618],{"id":4618},"非対応ブラウザへのフォールバック",[11,4620,4621,3778,4624,4627],{},[102,4622,4623],{},"\u003Clink rel=\"icon\" type=\"image\u002Fsvg+xml\">",[102,4625,4626],{},"\u003Clink rel=\"alternate icon\" type=\"image\u002Fx-icon\">"," を並べておけば、対応ブラウザは SVG、非対応は ICO を使います。",[23,4629,4631],{"id":4630},"sitewebmanifest-と-pwa","site.webmanifest と PWA",[385,4633,4634],{"id":4634},"必須プロパティ",[11,4636,4637,4638,4641],{},"PWA 対応を見据えると ",[102,4639,4640],{},"site.webmanifest"," を用意します。最低限の中身はこうなります。",[4282,4643,4647],{"className":4644,"code":4645,"language":4646,"meta":247,"style":247},"language-json shiki shiki-themes github-light github-dark","{\n  \"name\": \"My Site\",\n  \"short_name\": \"MySite\",\n  \"icons\": [\n    { \"src\": \"\u002Ficon-192.png\", \"sizes\": \"192x192\", \"type\": \"image\u002Fpng\" },\n    { \"src\": \"\u002Ficon-512.png\", \"sizes\": \"512x512\", \"type\": \"image\u002Fpng\" }\n  ],\n  \"theme_color\": \"#0a0a0a\",\n  \"background_color\": \"#ffffff\",\n  \"display\": \"standalone\"\n}\n","json",[102,4648,4649,4654,4668,4680,4688,4724,4755,4760,4772,4785,4796],{"__ignoreMap":247},[4521,4650,4651],{"class":4523,"line":4524},[4521,4652,4653],{"class":4527},"{\n",[4521,4655,4656,4660,4662,4665],{"class":4523,"line":248},[4521,4657,4659],{"class":4658},"sj4cs","  \"name\"",[4521,4661,54],{"class":4527},[4521,4663,4664],{"class":4590},"\"My Site\"",[4521,4666,4667],{"class":4527},",\n",[4521,4669,4670,4673,4675,4678],{"class":4523,"line":513},[4521,4671,4672],{"class":4658},"  \"short_name\"",[4521,4674,54],{"class":4527},[4521,4676,4677],{"class":4590},"\"MySite\"",[4521,4679,4667],{"class":4527},[4521,4681,4682,4685],{"class":4523,"line":4553},[4521,4683,4684],{"class":4658},"  \"icons\"",[4521,4686,4687],{"class":4527},": [\n",[4521,4689,4690,4693,4696,4698,4701,4703,4706,4708,4711,4713,4716,4718,4721],{"class":4523,"line":4559},[4521,4691,4692],{"class":4527},"    { ",[4521,4694,4695],{"class":4658},"\"src\"",[4521,4697,54],{"class":4527},[4521,4699,4700],{"class":4590},"\"\u002Ficon-192.png\"",[4521,4702,430],{"class":4527},[4521,4704,4705],{"class":4658},"\"sizes\"",[4521,4707,54],{"class":4527},[4521,4709,4710],{"class":4590},"\"192x192\"",[4521,4712,430],{"class":4527},[4521,4714,4715],{"class":4658},"\"type\"",[4521,4717,54],{"class":4527},[4521,4719,4720],{"class":4590},"\"image\u002Fpng\"",[4521,4722,4723],{"class":4527}," },\n",[4521,4725,4726,4728,4730,4732,4735,4737,4739,4741,4744,4746,4748,4750,4752],{"class":4523,"line":4565},[4521,4727,4692],{"class":4527},[4521,4729,4695],{"class":4658},[4521,4731,54],{"class":4527},[4521,4733,4734],{"class":4590},"\"\u002Ficon-512.png\"",[4521,4736,430],{"class":4527},[4521,4738,4705],{"class":4658},[4521,4740,54],{"class":4527},[4521,4742,4743],{"class":4590},"\"512x512\"",[4521,4745,430],{"class":4527},[4521,4747,4715],{"class":4658},[4521,4749,54],{"class":4527},[4521,4751,4720],{"class":4590},[4521,4753,4754],{"class":4527}," }\n",[4521,4756,4757],{"class":4523,"line":4575},[4521,4758,4759],{"class":4527},"  ],\n",[4521,4761,4762,4765,4767,4770],{"class":4523,"line":4597},[4521,4763,4764],{"class":4658},"  \"theme_color\"",[4521,4766,54],{"class":4527},[4521,4768,4769],{"class":4590},"\"#0a0a0a\"",[4521,4771,4667],{"class":4527},[4521,4773,4775,4778,4780,4783],{"class":4523,"line":4774},9,[4521,4776,4777],{"class":4658},"  \"background_color\"",[4521,4779,54],{"class":4527},[4521,4781,4782],{"class":4590},"\"#ffffff\"",[4521,4784,4667],{"class":4527},[4521,4786,4788,4791,4793],{"class":4523,"line":4787},10,[4521,4789,4790],{"class":4658},"  \"display\"",[4521,4792,54],{"class":4527},[4521,4794,4795],{"class":4590},"\"standalone\"\n",[4521,4797,4799],{"class":4523,"line":4798},11,[4521,4800,4801],{"class":4527},"}\n",[385,4803,4805],{"id":4804},"ios-の癖","iOS の癖",[11,4807,4808,4809,4811],{},"iOS は ",[102,4810,4457],{}," を優先するため、webmanifest 側に icon を書いても iOS ホーム画面には適用されません。Android と iOS で別々のファイルを用意する前提で運用しましょう。",[23,4813,4815],{"id":4814},"html-に設置する正しい書き方","HTML に設置する正しい書き方",[11,4817,4818,4820],{},[102,4819,4418],{}," に並べる順序のお手本:",[4282,4822,4824],{"className":4515,"code":4823,"language":4517,"meta":247,"style":247},"\u003Clink rel=\"icon\" type=\"image\u002Fsvg+xml\" href=\"\u002Ffavicon.svg\">\n\u003Clink rel=\"alternate icon\" type=\"image\u002Fx-icon\" href=\"\u002Ffavicon.ico\">\n\u003Clink rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"\u002Fapple-touch-icon.png\">\n\u003Clink rel=\"manifest\" href=\"\u002Fsite.webmanifest\">\n\u003Cmeta name=\"theme-color\" content=\"#0a0a0a\">\n",[102,4825,4826,4859,4888,4918,4940],{"__ignoreMap":247},[4521,4827,4828,4830,4833,4836,4838,4841,4844,4846,4849,4852,4854,4857],{"class":4523,"line":4524},[4521,4829,4528],{"class":4527},[4521,4831,4832],{"class":4531},"link",[4521,4834,4835],{"class":4583}," rel",[4521,4837,4587],{"class":4527},[4521,4839,4840],{"class":4590},"\"icon\"",[4521,4842,4843],{"class":4583}," type",[4521,4845,4587],{"class":4527},[4521,4847,4848],{"class":4590},"\"image\u002Fsvg+xml\"",[4521,4850,4851],{"class":4583}," href",[4521,4853,4587],{"class":4527},[4521,4855,4856],{"class":4590},"\"\u002Ffavicon.svg\"",[4521,4858,4535],{"class":4527},[4521,4860,4861,4863,4865,4867,4869,4872,4874,4876,4879,4881,4883,4886],{"class":4523,"line":248},[4521,4862,4528],{"class":4527},[4521,4864,4832],{"class":4531},[4521,4866,4835],{"class":4583},[4521,4868,4587],{"class":4527},[4521,4870,4871],{"class":4590},"\"alternate icon\"",[4521,4873,4843],{"class":4583},[4521,4875,4587],{"class":4527},[4521,4877,4878],{"class":4590},"\"image\u002Fx-icon\"",[4521,4880,4851],{"class":4583},[4521,4882,4587],{"class":4527},[4521,4884,4885],{"class":4590},"\"\u002Ffavicon.ico\"",[4521,4887,4535],{"class":4527},[4521,4889,4890,4892,4894,4896,4898,4901,4904,4906,4909,4911,4913,4916],{"class":4523,"line":513},[4521,4891,4528],{"class":4527},[4521,4893,4832],{"class":4531},[4521,4895,4835],{"class":4583},[4521,4897,4587],{"class":4527},[4521,4899,4900],{"class":4590},"\"apple-touch-icon\"",[4521,4902,4903],{"class":4583}," sizes",[4521,4905,4587],{"class":4527},[4521,4907,4908],{"class":4590},"\"180x180\"",[4521,4910,4851],{"class":4583},[4521,4912,4587],{"class":4527},[4521,4914,4915],{"class":4590},"\"\u002Fapple-touch-icon.png\"",[4521,4917,4535],{"class":4527},[4521,4919,4920,4922,4924,4926,4928,4931,4933,4935,4938],{"class":4523,"line":4553},[4521,4921,4528],{"class":4527},[4521,4923,4832],{"class":4531},[4521,4925,4835],{"class":4583},[4521,4927,4587],{"class":4527},[4521,4929,4930],{"class":4590},"\"manifest\"",[4521,4932,4851],{"class":4583},[4521,4934,4587],{"class":4527},[4521,4936,4937],{"class":4590},"\"\u002Fsite.webmanifest\"",[4521,4939,4535],{"class":4527},[4521,4941,4942,4944,4947,4950,4952,4955,4958,4960,4962],{"class":4523,"line":4559},[4521,4943,4528],{"class":4527},[4521,4945,4946],{"class":4531},"meta",[4521,4948,4949],{"class":4583}," name",[4521,4951,4587],{"class":4527},[4521,4953,4954],{"class":4590},"\"theme-color\"",[4521,4956,4957],{"class":4583}," content",[4521,4959,4587],{"class":4527},[4521,4961,4769],{"class":4590},[4521,4963,4535],{"class":4527},[385,4965,4967,4970],{"id":4966},"sizesany-の罠",[102,4968,4969],{},"sizes=\"any\""," の罠",[11,4972,4973,4975,4976,2648],{},[102,4974,4969],{}," を SVG に付けると、ブラウザが SVG を ICO より優先するようになります。基本的に意図通りですが、古い iOS で誤解される例があったため、2026 年時点では",[33,4977,4978],{},"書かないのが無難",[23,4980,4982],{"id":4981},"ファビコン生成アプローチの-3-類型と向き不向き","ファビコン生成アプローチの 3 類型と向き不向き",[385,4984,4986],{"id":4985},"アップロード型のオンライン-saas","アップロード型のオンライン SaaS",[11,4988,4989],{},"高機能で一発生成。ただしロゴ画像を一度サーバーに送ります。公開済みのロゴなら気にならないケースが多いです。",[385,4991,4993],{"id":4992},"デスクトップ-ローカルアプリ","デスクトップ \u002F ローカルアプリ",[11,4995,4996],{},"ImageMagick \u002F Sketch \u002F Figma 等。CLI や GUI で手元だけで生成できますが、セットアップが必要です。",[385,4998,4999],{"id":4999},"ブラウザ内完結型",[11,5001,5002,5003,5005,5006,5009],{},"Zerosend の ",[17,5004,4396],{"href":3025}," がこの型。",[33,5007,5008],{},"インストール不要 + 手元完結","で、NDA 下の未公開ロゴでも気兼ねなく使えます。",[385,5011,5013],{"id":5012},"nda-下未公開ブランド社内案件での選び方","NDA 下・未公開ブランド・社内案件での選び方",[11,5015,5016,5017,5019],{},"受託案件や新規ブランドの立ち上げでは、ロゴ画像の取り扱いに神経を使います。この場合は",[33,5018,4999],{},"を選ぶか、デスクトップアプリで手元処理するのが安心です。",[23,5021,5023],{"id":5022},"zerosend-でブラウザ内完結で作る手順","Zerosend でブラウザ内完結で作る手順",[11,5025,5026],{},"1 枚の PNG または SVG から、必要なファイル一式 (ICO \u002F PNG 複数サイズ \u002F apple-touch-icon \u002F site.webmanifest \u002F HTML スニペット) を ZIP で一気に生成できます。",[75,5028,5029,5034,5037,5040,5043,5046],{},[30,5030,5031,5033],{},[17,5032,3025],{"href":3025}," にアクセス",[30,5035,5036],{},"ロゴ画像をドラッグ&ドロップ (推奨: 512×512 以上の正方形)",[30,5038,5039],{},"アプリ名 \u002F theme_color \u002F background_color を入力",[30,5041,5042],{},"「ファビコン一式を生成する」",[30,5044,5045],{},"生成されたプレビューを確認し、ZIP をダウンロード",[30,5047,5048,5049,5052,5053,5055,5056,5059],{},"ZIP に同梱の ",[102,5050,5051],{},"snippet.html"," の内容を ",[102,5054,4418],{}," に貼り付け、各ファイルをサイトのルート (",[102,5057,5058],{},"\u002F",") に配置",[11,5061,5062],{},"ブラウザ内完結なので、ロゴ画像が外部に送られることはありません。",[23,5064,5065],{"id":5065},"よくある失敗",[385,5067,5069],{"id":5068},"retina-で滲む","Retina で滲む",[11,5071,5072],{},"タブで綺麗に見せるには 32×32 や 48×48 も用意する必要があります。Zerosend は 16\u002F32\u002F48 のマルチサイズ ICO を自動で作ります。",[385,5074,5076],{"id":5075},"ios-ホーム画面で余白が出る","iOS ホーム画面で余白が出る",[11,5078,5079,5081,5082,5085],{},[102,5080,4457],{}," は",[33,5083,5084],{},"背景透過に対応していません","。透過 PNG を渡すと iOS が黒背景で埋めてしまうので、背景色を明示的に塗った PNG を用意しましょう。",[385,5087,5089,5091],{"id":5088},"faviconico-だけしか指定していない",[102,5090,4451],{}," だけしか指定していない",[11,5093,5094,5095,5097],{},"モダンブラウザで SVG を使うメリットを取りこぼします。少なくとも ",[102,5096,4474],{}," は併用するのが 2026 年の標準です。",[23,5099,4316],{"id":4316},[11,5101,5102,5103,5106],{},"2026 年のファビコン運用は「SVG を第一選択 + ICO \u002F apple-touch-icon \u002F PWA アイコン + webmanifest」の組み合わせで完成します。1 枚の画像から一式を生成するなら、ブラウザ内で完結する ",[17,5104,5105],{"href":3025},"Zerosend のファビコン生成ツール"," が手早くておすすめです。",[11,5108,4334,5109],{},[17,5110,5112],{"href":5111},"\u002Fblog\u002Ffavicon-generator-intro","ファビコン生成ツールの舞台裏",[4543,5114,5115],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":247,"searchDepth":248,"depth":248,"links":5117},[5118,5123,5129,5134,5138,5142,5148,5149,5155],{"id":4400,"depth":248,"text":4401,"children":5119},[5120,5122],{"id":4404,"depth":513,"text":5121},"\u003Clink> タグで参照される機能の総称",{"id":4432,"depth":513,"text":4433},{"id":4439,"depth":248,"text":4440,"children":5124},[5125,5126,5128],{"id":4443,"depth":513,"text":4444},{"id":4470,"depth":513,"text":5127},"推奨: favicon.svg",{"id":4484,"depth":513,"text":4484},{"id":4501,"depth":248,"text":4502,"children":5130},[5131,5132,5133],{"id":4505,"depth":513,"text":4505},{"id":4607,"depth":513,"text":4608},{"id":4618,"depth":513,"text":4618},{"id":4630,"depth":248,"text":4631,"children":5135},[5136,5137],{"id":4634,"depth":513,"text":4634},{"id":4804,"depth":513,"text":4805},{"id":4814,"depth":248,"text":4815,"children":5139},[5140],{"id":4966,"depth":513,"text":5141},"sizes=\"any\" の罠",{"id":4981,"depth":248,"text":4982,"children":5143},[5144,5145,5146,5147],{"id":4985,"depth":513,"text":4986},{"id":4992,"depth":513,"text":4993},{"id":4999,"depth":513,"text":4999},{"id":5012,"depth":513,"text":5013},{"id":5022,"depth":248,"text":5023},{"id":5065,"depth":248,"text":5065,"children":5150},[5151,5152,5153],{"id":5068,"depth":513,"text":5069},{"id":5075,"depth":513,"text":5076},{"id":5088,"depth":513,"text":5154},"favicon.ico だけしか指定していない",{"id":4316,"depth":248,"text":4316},"ファビコンのサイズは結局どれが必要? ICO と SVG の使い分けは? 2026 年時点で本当に必要なアイコンセットと、1 枚の画像からブラウザ内で一式生成できる方法を解説します。",{},"\u002Fblog\u002Ffavicon-complete-guide-2026",{"title":4388,"description":5156},"favicon-complete-guide-2026","blog\u002Ffavicon-complete-guide-2026",[5163,5164,5165],"ファビコン","Web制作","SVG","6QfQxvS0o-pta89QeqPnRWk9obonVRERhxv04nW3nso",{"id":5168,"title":5169,"author":6,"body":5170,"category":258,"coverImage":258,"description":5375,"draft":260,"extension":261,"locale":262,"meta":5376,"navigation":264,"noindex":260,"path":5111,"publishedAt":4377,"seo":5377,"slug":5378,"stem":5379,"tags":5380,"updatedAt":4377,"__hash__":5381},"blog\u002Fblog\u002Ffavicon-generator-intro.md","ブラウザだけで作るファビコン一式 — \u002Ftools\u002Ffavicon-generator の舞台裏",{"type":8,"value":5171,"toc":5364},[5172,5175,5178,5181,5184,5189,5192,5195,5237,5240,5275,5279,5286,5289,5309,5316,5318,5330,5336,5339,5342,5344,5356,5358],[23,5173,5174],{"id":5174},"ファビコンが必要な理由",[11,5176,5177],{},"ファビコンは、ブラウザのタブやブックマーク一覧でサイトを識別する小さなアイコンです。スマートフォンのホーム画面に「追加」したときに表示されるアイコン (apple-touch-icon \u002F PWA アイコン) も、ファビコン一式の一部です。「ファビコンがない」「サイズが揃っていない」といった状態は、ユーザーの信頼感を下げ、PWA 対応の妨げにもなります。",[23,5179,5180],{"id":5180},"背景",[11,5182,5183],{},"サイトのファビコンを更新する作業は、新規サイトでも既存サイトのリブランディングでも発生します。ロゴ画像 1 枚から必要なアイコンセットを揃えるのは地味に手間のかかる工程です。",[11,5185,5186,5188],{},[17,5187,5105],{"href":3025}," は、この工程をブラウザ内で完結させます。ロゴ画像を外部に送らずに一式を作成できるので、NDA 下の受託案件や未公開のブランディング作業でも安心して使えます。",[23,5190,5191],{"id":5191},"何が出力されるか",[11,5193,5194],{},"1 枚の画像 (PNG \u002F JPG \u002F WebP \u002F SVG) から次の 9 ファイルを生成し、ZIP で配布します。",[27,5196,5197,5202,5213,5218,5225,5229],{},[30,5198,5199,5201],{},[102,5200,4451],{}," — 16 \u002F 32 \u002F 48px のマルチサイズ ICO",[30,5203,5204,638,5207,638,5210],{},[102,5205,5206],{},"favicon-16.png",[102,5208,5209],{},"favicon-32.png",[102,5211,5212],{},"favicon-48.png",[30,5214,5215,5217],{},[102,5216,4457],{}," (180×180)",[30,5219,5220,638,5222,5224],{},[102,5221,4463],{},[102,5223,4466],{}," (PWA)",[30,5226,5227],{},[102,5228,4640],{},[30,5230,5231,5233,5234,5236],{},[102,5232,5051],{}," — ",[102,5235,4418],{}," に貼り付ける link タグ",[23,5238,5239],{"id":5239},"使い方ステップ",[75,5241,5242,5248,5258,5264],{},[30,5243,5244,5247],{},[33,5245,5246],{},"画像を準備する"," — 正方形の PNG \u002F JPG \u002F WebP \u002F SVG を用意。最低でも 512×512px 推奨",[30,5249,5250,5233,5253,5257],{},[33,5251,5252],{},"ドロップする",[17,5254,5255],{"href":3025},[102,5256,3025],{}," を開いてドラッグ&ドロップ",[30,5259,5260,5263],{},[33,5261,5262],{},"ZIP をダウンロードする"," — ボタンを押すと 9 ファイルが入った ZIP が生成される",[30,5265,5266,5233,5269,5271,5272,5274],{},[33,5267,5268],{},"HTML に貼り付ける",[102,5270,5051],{}," の内容をサイトの ",[102,5273,4418],{}," にコピーして完了",[23,5276,5278],{"id":5277},"ico-を自前で書き出す","ICO を自前で書き出す",[11,5280,5281,5282,5285],{},"PNG は Canvas API で簡単に書き出せますが、ICO は少し工夫が必要です。とはいえ、Windows Vista 以降の ICO は ",[33,5283,5284],{},"PNG バイト列をそのまま埋め込める"," ため、意外と単純です。",[11,5287,5288],{},"構造:",[27,5290,5291,5297,5303],{},[30,5292,5293,5296],{},[33,5294,5295],{},"ICONDIR"," (6 バイト): reserved \u002F type \u002F image count",[30,5298,5299,5302],{},[33,5300,5301],{},"ICONDIRENTRY"," (16 バイト × 画像数): 幅 \u002F 高さ \u002F bpp \u002F サイズ \u002F オフセット",[30,5304,5305,5308],{},[33,5306,5307],{},"画像データ",": PNG のバイト列を順に連結",[11,5310,5311,5312,5315],{},"依存ゼロで 30 行程度に収まります。",[102,5313,5314],{},"domain\u002Fprocessors\u002FfaviconGenerator.ts"," で実装を公開しています。",[23,5317,180],{"id":180},[11,5319,5320,5323,5324,5326,5327,5329],{},[33,5321,5322],{},"Q. どのサイズが必要ですか？","\nA. 最低限は ",[102,5325,4451],{}," (16\u002F32px) と ",[102,5328,4457],{}," (180px) です。PWA 対応するなら 192px と 512px も必要です。本ツールはこれらをすべて一括生成します。",[11,5331,5332,5335],{},[33,5333,5334],{},"Q. SVG のロゴから生成できますか？","\nA. はい。SVG を入力するとブラウザ側で各サイズにラスタライズしてから ICO \u002F PNG を生成します。",[23,5337,5338],{"id":5338},"検証の楽しさ",[11,5340,5341],{},"作ったあとは DevTools の Network タブで確認できます。画像選択 → 生成 → ダウンロードの全てで、あなたのロゴが外に出ないことを自分で検証できます。",[23,5343,225],{"id":225},[27,5345,5346,5351],{},[30,5347,5348,5350],{},[17,5349,244],{"href":243}," — 入力画像が大きすぎる場合、事前に軽量化",[30,5352,5353,5355],{},[17,5354,935],{"href":934}," — 正方形にトリミングしてからファビコン生成すると精度が上がる",[23,5357,4316],{"id":4316},[11,5359,5360,5361,1253],{},"1 枚の画像から ICO \u002F PNG \u002F apple-touch-icon \u002F manifest \u002F HTML スニペットを、あなたの端末だけで生成できます。",[17,5362,5363],{"href":3025},"試してみてください",{"title":247,"searchDepth":248,"depth":248,"links":5365},[5366,5367,5368,5369,5370,5371,5372,5373,5374],{"id":5174,"depth":248,"text":5174},{"id":5180,"depth":248,"text":5180},{"id":5191,"depth":248,"text":5191},{"id":5239,"depth":248,"text":5239},{"id":5277,"depth":248,"text":5278},{"id":180,"depth":248,"text":180},{"id":5338,"depth":248,"text":5338},{"id":225,"depth":248,"text":225},{"id":4316,"depth":248,"text":4316},"1 枚の画像から ICO \u002F PNG \u002F apple-touch-icon \u002F site.webmanifest を生成するファビコン生成ツールを公開しました。ICO フォーマットを自前で書き出す実装のポイントを紹介します。",{},{"title":5169,"description":5375},"favicon-generator-intro","blog\u002Ffavicon-generator-intro",[272,4384],"3t3z-Zm-s-OgpewxhvXXeVAxzDosMQLq8XTZRneQGs4",{"id":5383,"title":5384,"author":6,"body":5385,"category":257,"coverImage":258,"description":5648,"draft":260,"extension":261,"locale":262,"meta":5649,"navigation":264,"noindex":260,"path":5650,"publishedAt":4377,"seo":5651,"slug":5652,"stem":5653,"tags":5654,"updatedAt":4377,"__hash__":5656},"blog\u002Fblog\u002Fheic-to-jpg-windows.md","Windows で HEIC を JPG に変換する 3 つの方法 — 無料・オンライン・アップロード不要",{"type":8,"value":5386,"toc":5624},[5387,5394,5398,5402,5409,5413,5416,5420,5423,5426,5440,5443,5455,5459,5464,5467,5483,5487,5494,5497,5501,5504,5508,5516,5523,5527,5585,5587,5590,5593,5597,5604,5608,5611,5613],[11,5388,5389,5390,5393],{},"iPhone から送られてきた写真 (",[102,5391,5392],{},".HEIC"," 形式) を Windows で開こうとして「このファイルを開けません」のダイアログで止まった経験がある人向け。3 つの解決方法を比較します。",[23,5395,5397],{"id":5396},"heic-とは何か-30-秒解説","HEIC とは何か (30 秒解説)",[385,5399,5401],{"id":5400},"apple-が推進する高圧縮画像フォーマット","Apple が推進する高圧縮画像フォーマット",[11,5403,5404,5405,5408],{},"HEIC (High Efficiency Image Container) は、iPhone 7 以降のデフォルト撮影形式です。JPG と比べて",[33,5406,5407],{},"同じ画質で約半分のファイルサイズ","を実現します。写真のストレージ節約目的で採用されています。",[385,5410,5412],{"id":5411},"windows-が標準対応していない理由","Windows が標準対応していない理由",[11,5414,5415],{},"HEIC の特許関係で、Windows には標準でコーデックが入っていません。対応するには拡張機能の追加 or 変換が必要です。",[23,5417,5419],{"id":5418},"方法-1-microsoft-store-の-heifhevc-拡張機能","方法 1: Microsoft Store の HEIF\u002FHEVC 拡張機能",[11,5421,5422],{},"Windows 10\u002F11 で HEIC を「フォト」アプリで直接開けるようにする方法。",[385,5424,5425],{"id":5425},"手順",[75,5427,5428,5431,5434,5437],{},[30,5429,5430],{},"Microsoft Store を開く",[30,5432,5433],{},"「HEIF 画像拡張機能」を検索してインストール (無料)",[30,5435,5436],{},"「HEVC ビデオ拡張機能」もインストール (有料の場合あり、~120 円程度)",[30,5438,5439],{},"再起動不要、すぐに HEIC が開けるようになる",[385,5441,5442],{"id":5442},"注意点",[27,5444,5445,5448],{},[30,5446,5447],{},"HEVC の方は Microsoft Store のポリシー次第で有料化されている期間があります",[30,5449,5450,5451,5454],{},"拡張機能を入れても、",[33,5452,5453],{},"Windows 標準のフォトビューアー","以外では開けないツールがあります (サードパーティ画像編集ソフト等)",[23,5456,5458],{"id":5457},"方法-2-zerosend-でブラウザ内変換-推奨","方法 2: Zerosend でブラウザ内変換 (推奨)",[11,5460,5461,5463],{},[17,5462,784],{"href":784}," は、ブラウザだけで HEIC → JPG 変換を行うツールです。",[385,5465,5425],{"id":5466},"手順-1",[75,5468,5469,5474,5477,5480],{},[30,5470,5471,5033],{},[17,5472,5473],{"href":784},"Zerosend HEIC → JPG",[30,5475,5476],{},"HEIC ファイルをドラッグ&ドロップ (複数可)",[30,5478,5479],{},"「変換する」ボタン",[30,5481,5482],{},"JPG をダウンロード",[385,5484,5486],{"id":5485},"iphone-から送った写真が外に出ないメリット","iPhone から送った写真が外に出ないメリット",[11,5488,5489,5490,5493],{},"HEIC は iPhone の撮影形式、つまり",[33,5491,5492],{},"個人の写真","です。家族のプライベート写真や顔写真が写り込んだ業務資料を、一度クラウド SaaS にアップロードして変換させるのは気持ちの良い行為ではありません。",[11,5495,5496],{},"Zerosend はブラウザ内で完結するため、写真が外部に送られません。DevTools の Network タブで確認できます。",[23,5498,5500],{"id":5499},"方法-3-iphone-側で互換性優先に変更","方法 3: iPhone 側で「互換性優先」に変更",[11,5502,5503],{},"そもそも HEIC ではなく JPG で撮影する設定に変える方法。",[385,5505,5507],{"id":5506},"手順-ios","手順 (iOS)",[75,5509,5510,5513],{},[30,5511,5512],{},"設定 → カメラ → フォーマット",[30,5514,5515],{},"「高効率」→「互換性優先」に変更",[11,5517,5518,5519,5522],{},"これで以降の撮影は JPG になります。ただし",[33,5520,5521],{},"容量は 1.5〜2 倍","に増えるので、iPhone のストレージとの兼ね合いで判断してください。",[23,5524,5526],{"id":5525},"どの方法が良いか-用途別まとめ","どの方法が良いか (用途別まとめ)",[5528,5529,5530,5543],"table",{},[5531,5532,5533],"thead",{},[5534,5535,5536,5540],"tr",{},[5537,5538,5539],"th",{},"シーン",[5537,5541,5542],{},"おすすめ",[5544,5545,5546,5555,5563,5571,5578],"tbody",{},[5534,5547,5548,5552],{},[5549,5550,5551],"td",{},"1〜2 枚を今だけ開きたい",[5549,5553,5554],{},"方法 1 (拡張機能)",[5534,5556,5557,5560],{},[5549,5558,5559],{},"まとめて JPG 化したい (複数枚)",[5549,5561,5562],{},"方法 2 (Zerosend)",[5534,5564,5565,5568],{},[5549,5566,5567],{},"今後撮る写真は Windows で扱いやすくしたい",[5549,5569,5570],{},"方法 3 (iPhone 設定)",[5534,5572,5573,5576],{},[5549,5574,5575],{},"プライバシーに気を配りたい",[5549,5577,5562],{},[5534,5579,5580,5583],{},[5549,5581,5582],{},"業務で他社に JPG で渡したい",[5549,5584,5562],{},[23,5586,180],{"id":180},[385,5588,5589],{"id":5589},"画質は劣化するか",[11,5591,5592],{},"HEIC → JPG の変換は非可逆同士の変換なので、わずかに劣化します。Zerosend は変換品質を 92% に設定しており、肉眼での判別は困難なレベルです。",[385,5594,5596],{"id":5595},"exif-撮影日時位置情報-は残るか","EXIF (撮影日時・位置情報) は残るか",[11,5598,5599,5600,5603],{},"iPhone の HEIC に含まれる EXIF は、変換時に基本的に引き継がれます。ただし Zerosend は",[33,5601,5602],{},"プライバシー配慮で EXIF を自動削除","します。撮影日時を残したい場合は、方法 1 (拡張機能で開くだけ) を選ぶか、別ツールで明示的に保持してください。",[385,5605,5607],{"id":5606},"連写した大量の-heic-も一括変換できるか","連写した大量の HEIC も一括変換できるか",[11,5609,5610],{},"Zerosend は複数ファイルの一括変換に対応しており、結果は ZIP でまとめてダウンロードできます。100 枚単位の処理も問題ありません (ブラウザのメモリ次第)。",[23,5612,4316],{"id":4316},[11,5614,5615,5616,5619,5620,5623],{},"HEIC が開けないという問題は、拡張機能・オンライン変換・撮影設定変更の 3 通りで解決できます。",[33,5617,5618],{},"一度にたくさん + プライバシー重視","なら、ブラウザ内で完結する ",[17,5621,5622],{"href":784},"Zerosend の HEIC → JPG 変換"," が一番実用的です。",{"title":247,"searchDepth":248,"depth":248,"links":5625},[5626,5630,5634,5638,5641,5642,5647],{"id":5396,"depth":248,"text":5397,"children":5627},[5628,5629],{"id":5400,"depth":513,"text":5401},{"id":5411,"depth":513,"text":5412},{"id":5418,"depth":248,"text":5419,"children":5631},[5632,5633],{"id":5425,"depth":513,"text":5425},{"id":5442,"depth":513,"text":5442},{"id":5457,"depth":248,"text":5458,"children":5635},[5636,5637],{"id":5466,"depth":513,"text":5425},{"id":5485,"depth":513,"text":5486},{"id":5499,"depth":248,"text":5500,"children":5639},[5640],{"id":5506,"depth":513,"text":5507},{"id":5525,"depth":248,"text":5526},{"id":180,"depth":248,"text":180,"children":5643},[5644,5645,5646],{"id":5589,"depth":513,"text":5589},{"id":5595,"depth":513,"text":5596},{"id":5606,"depth":513,"text":5607},{"id":4316,"depth":248,"text":4316},"iPhone の HEIC 写真が Windows で開けない時の解決策を 3 通り解説。Microsoft Store 拡張機能、ブラウザ内変換 (Zerosend)、iPhone の設定変更を比較し、用途別のおすすめを紹介します。",{},"\u002Fblog\u002Fheic-to-jpg-windows",{"title":5384,"description":5648},"heic-to-jpg-windows","blog\u002Fheic-to-jpg-windows",[967,968,5655],"Windows","980U9DKFglaadPkZ3zjYq5jDasjMkJdPDF9-XLyb51g",{"id":5658,"title":5659,"author":6,"body":5660,"category":257,"coverImage":258,"description":5985,"draft":260,"extension":261,"locale":262,"meta":5986,"navigation":264,"noindex":260,"path":5987,"publishedAt":4377,"seo":5988,"slug":5989,"stem":5990,"tags":5991,"updatedAt":4377,"__hash__":5994},"blog\u002Fblog\u002Fimage-compress-guide.md","オンライン画像圧縮 完全ガイド 2026 — 画質を落とさず最大限軽くする方法",{"type":8,"value":5661,"toc":5953},[5662,5669,5672,5676,5683,5687,5690,5693,5697,5710,5713,5717,5724,5735,5739,5753,5760,5764,5768,5775,5779,5786,5790,5801,5805,5812,5816,5823,5826,5830,5833,5848,5851,5858,5861,5864,5868,5886,5889,5893,5911,5914,5918,5925,5928,5935,5939,5946,5948],[11,5663,5664,5665,5668],{},"Web サイトに画像を載せるとき、「軽くしたいけど画質は落としたくない」という悩みは共通です。本記事では、画像圧縮の基本と実用的なコツ、そしてファイルをサーバーに預けずに処理できる ",[17,5666,5667],{"href":243},"Zerosend の画像圧縮ツール"," の使い方を整理します。",[23,5670,5671],{"id":5671},"なぜ画像圧縮が必要か",[385,5673,5675],{"id":5674},"表示速度と-seo-core-web-vitals","表示速度と SEO (Core Web Vitals)",[11,5677,5678,5679,5682],{},"Google の Core Web Vitals では、ページ内の最大コンテンツの表示時間 (LCP) を評価軸にしています。LCP の遅延原因の多くは",[33,5680,5681],{},"巨大な画像","です。未圧縮の写真を 1 枚置くだけで、モバイル回線ではページ全体の表示が数秒遅れます。検索順位にも影響します。",[385,5684,5686],{"id":5685},"サーバー費用ストレージ節約","サーバー費用・ストレージ節約",[11,5688,5689],{},"画像 1 枚あたり数 MB を 100 枚置けば数 GB。配信帯域・ストレージ・CDN 費用は使い手がその画像を見る回数だけ上乗せで発生します。初期の圧縮コストをサボるほど、後でお金と速度の両方で払うことになります。",[23,5691,5692],{"id":5692},"主要な画像フォーマットと圧縮方式",[385,5694,5696],{"id":5695},"jpg-と-png-の使い分け","JPG と PNG の使い分け",[27,5698,5699,5705],{},[30,5700,5701,5704],{},[33,5702,5703],{},"JPG",": 写真向け。非可逆圧縮 (情報を捨てて軽くする)。透過不可。",[30,5706,5707,5709],{},[33,5708,1068],{},": ロゴ・スクリーンショット・透過が必要な画像向け。可逆圧縮。",[11,5711,5712],{},"写真を PNG で保存すると JPG の 5〜10 倍の容量になります。まずこの判断を間違えないこと。",[385,5714,5716],{"id":5715},"webp-avif-の現在地","WebP \u002F AVIF の現在地",[11,5718,5719,5720,5723],{},"2026 年時点では ",[33,5721,5722],{},"WebP は実質全ブラウザで使えます","。AVIF も主要ブラウザが対応済みで、JPG の 2〜3 割小さい容量を実現できます。",[11,5725,5726,5727,5730,5731,5734],{},"互換性が不安なら、WebP を第一選択にしつつ、フォールバックで JPG \u002F PNG を用意するのが安全です。",[102,5728,5729],{},"\u003Cpicture>"," タグの ",[102,5732,5733],{},"srcset"," で自動切替できます。",[385,5736,5738],{"id":5737},"可逆圧縮-vs-非可逆圧縮","可逆圧縮 vs 非可逆圧縮",[27,5740,5741,5747],{},[30,5742,5743,5746],{},[33,5744,5745],{},"可逆 (lossless)",": ファイルを小さくするが画質は 1 ピクセルも失わない。PNG \u002F WebP lossless \u002F AVIF lossless。",[30,5748,5749,5752],{},[33,5750,5751],{},"非可逆 (lossy)",": 人間の目に目立ちにくい情報を捨てて大幅に軽くする。JPG \u002F WebP lossy \u002F AVIF。",[11,5754,5755,5756,5759],{},"Web 配信用は",[33,5757,5758],{},"基本的に非可逆で十分","。ロゴやイラストのような「元画像が重要」なものだけ可逆を選びます。",[23,5761,5763],{"id":5762},"画質を落とさず圧縮する-5-つのコツ","画質を落とさず圧縮する 5 つのコツ",[385,5765,5767],{"id":5766},"_1-品質-8085-の黄金点","1. 品質 80〜85 % の黄金点",[11,5769,5770,5771,5774],{},"JPG の品質設定は 100% ではなく ",[33,5772,5773],{},"85% がベスト","です。体感の画質差はほぼ分かりませんが、ファイルサイズは 100% の約 40% まで落ちます。70% まで下げると輪郭にノイズが出始めるので、そこが下限の目安です。",[385,5776,5778],{"id":5777},"_2-不要なメタデータを削る","2. 不要なメタデータを削る",[11,5780,5781,5782,5785],{},"スマホで撮った写真には EXIF (撮影日時・GPS 位置情報・カメラ機種) が埋め込まれています。サイズ的にわずか数十 KB ですが、",[33,5783,5784],{},"プライバシー面でも削るべき","です。Zerosend の画像圧縮は保存時に EXIF を自動で除去します。",[385,5787,5789],{"id":5788},"_3-画像サイズを先にリサイズ","3. 画像サイズを先にリサイズ",[11,5791,5792,5793,5796,5797,5800],{},"圧縮前に画像サイズ (ピクセル) を表示サイズに合わせることが、品質と容量を両立する最強の施策です。300px で表示する画像を 3000px のまま圧縮しても、帯域の無駄でしかありません。",[17,5794,5795],{"href":934},"画像リサイズツール"," で",[33,5798,5799],{},"先に縮めてから","圧縮してください。",[385,5802,5804],{"id":5803},"_4-複数ツールを重ねがけしない","4. 複数ツールを重ねがけしない",[11,5806,5807,5808,5811],{},"非可逆圧縮は毎回わずかに画質が落ちます。「JPG を圧縮 → またアップ → また圧縮」を繰り返すと、ジワジワ劣化が積み重なります。元画像から ",[33,5809,5810],{},"1 回だけ"," 圧縮する運用にしましょう。",[385,5813,5815],{"id":5814},"_5-重要な画像だけ手動で確認","5. 重要な画像だけ手動で確認",[11,5817,5818,5819,5822],{},"自動処理で全部済ませてよい画像と、見出し画像やアイキャッチのように",[33,5820,5821],{},"手動で結果を確認すべき画像","を分けます。後者は品質 85% に加えて、元画像とのスライダー比較を挟むと事故を防げます。",[23,5824,5825],{"id":5825},"オンライン画像圧縮ツールの選び方",[385,5827,5829],{"id":5828},"アップロードされるされないを見分ける","アップロードされる\u002Fされないを見分ける",[11,5831,5832],{},"「オンラインで無料で使える」と謳うツールの多くは、一度ファイルをサーバーに送って処理しています。画像のロゴや社内資料では、これが問題になる場面があります。",[11,5834,5835,5836,5839,5840,5843,5844,5847],{},"見分け方はシンプルです。ブラウザの ",[33,5837,5838],{},"DevTools を開き Network タブを表示","してからツールを使ってみてください。アップロード時に大きなデータを伴う POST リクエストが出ていれば、そのツールは送信型です。",[17,5841,5842],{"href":243},"Zerosend の画像圧縮"," はこの検証で",[33,5845,5846],{},"送信ゼロ","が確認できます。",[385,5849,5850],{"id":5850},"画質コントロールの柔軟性",[11,5852,5853,5854,5857],{},"品質スライダーがあるか、形式を選べるか、出力プレビューがあるかは必ずチェックしましょう。プリセット一択のツールは",[33,5855,5856],{},"過剰圧縮","に陥りがちです。",[385,5859,5860],{"id":5860},"バッチ処理に対応しているか",[11,5862,5863],{},"1 枚ずつでは時間がかかる業務向けに、複数ファイルの一括処理 + ZIP ダウンロードに対応したツールを選びます。",[23,5865,5867],{"id":5866},"zerosend-でブラウザ内完結の画像圧縮をする手順","Zerosend でブラウザ内完結の画像圧縮をする手順",[75,5869,5870,5874,5877,5880,5883],{},[30,5871,5872,5033],{},[17,5873,243],{"href":243},[30,5875,5876],{},"画像をドラッグ&ドロップ (JPG \u002F PNG \u002F WebP、複数可)",[30,5878,5879],{},"品質スライダーを調整 (推奨は 80)",[30,5881,5882],{},"「圧縮する」ボタン",[30,5884,5885],{},"1 枚ならそのまま、複数なら ZIP でダウンロード",[11,5887,5888],{},"すべての処理がブラウザ内で完結するので、機密画像も安心して扱えます。",[385,5890,5892],{"id":5891},"devtools-の-network-タブで検証する方法","DevTools の Network タブで検証する方法",[75,5894,5895,5898,5901,5904],{},[30,5896,5897],{},"圧縮する前に DevTools を開く (右クリック → 検証)",[30,5899,5900],{},"Network タブに切り替え、「Preserve log」をオンに",[30,5902,5903],{},"画像をドラッグ&ドロップして処理を走らせる",[30,5905,5906,5907,5910],{},"表示される通信が CDN \u002F GA \u002F AdSense だけで、",[33,5908,5909],{},"画像自体を POST している通信がない"," ことを確認",[23,5912,5913],{"id":5913},"よくある落とし穴",[385,5915,5917],{"id":5916},"透過-png-が白背景になる","透過 PNG が白背景になる",[11,5919,5920,5921,5924],{},"JPG は透過を扱えません。PNG の透過画像を「形式変換: JPG」で処理すると、透過部分が白で埋まります。透過を保ちたい場合は PNG のまま \u002F WebP に変換してください。",[17,5922,5923],{"href":941},"画像形式変換ツール"," を参照。",[385,5926,5927],{"id":5927},"圧縮後に色がくすむ",[11,5929,5930,5931,5934],{},"sRGB 以外のプロファイル (Adobe RGB \u002F Display P3) で保存された画像は、非対応ブラウザで色がくすんで見えることがあります。Web 配信は ",[33,5932,5933],{},"sRGB に統一","するのが無難です。",[385,5936,5938],{"id":5937},"sns-側で再圧縮される","SNS 側で再圧縮される",[11,5940,5941,5942,5945],{},"Twitter \u002F Instagram \u002F LINE では、投稿された画像がプラットフォーム側でさらに圧縮されます。自分で極限まで圧縮するよりも、",[33,5943,5944],{},"そこそこで止めて SNS の再圧縮に任せる","方が綺麗に見えるケースもあります。",[23,5947,4316],{"id":4316},[11,5949,5950,5951,1253],{},"画像圧縮は「JPG 品質 85% を目安に、先にリサイズ、メタデータは削る」の 3 原則で大半がうまくいきます。Zerosend の画像圧縮は、この原則をブラウザ内で実現します。機密画像でも気兼ねなく使えるので、",[17,5952,5363],{"href":243},{"title":247,"searchDepth":248,"depth":248,"links":5954},[5955,5959,5964,5971,5976,5979,5984],{"id":5671,"depth":248,"text":5671,"children":5956},[5957,5958],{"id":5674,"depth":513,"text":5675},{"id":5685,"depth":513,"text":5686},{"id":5692,"depth":248,"text":5692,"children":5960},[5961,5962,5963],{"id":5695,"depth":513,"text":5696},{"id":5715,"depth":513,"text":5716},{"id":5737,"depth":513,"text":5738},{"id":5762,"depth":248,"text":5763,"children":5965},[5966,5967,5968,5969,5970],{"id":5766,"depth":513,"text":5767},{"id":5777,"depth":513,"text":5778},{"id":5788,"depth":513,"text":5789},{"id":5803,"depth":513,"text":5804},{"id":5814,"depth":513,"text":5815},{"id":5825,"depth":248,"text":5825,"children":5972},[5973,5974,5975],{"id":5828,"depth":513,"text":5829},{"id":5850,"depth":513,"text":5850},{"id":5860,"depth":513,"text":5860},{"id":5866,"depth":248,"text":5867,"children":5977},[5978],{"id":5891,"depth":513,"text":5892},{"id":5913,"depth":248,"text":5913,"children":5980},[5981,5982,5983],{"id":5916,"depth":513,"text":5917},{"id":5927,"depth":513,"text":5927},{"id":5937,"depth":513,"text":5938},{"id":4316,"depth":248,"text":4316},"画像圧縮で画質を落とさず最大限軽くするための実用テクと、ファイルをサーバーに送らずブラウザだけで圧縮する方法を解説。品質 85% の黄金点・フォーマット選び・リサイズとの順序まで。",{},"\u002Fblog\u002Fimage-compress-guide",{"title":5659,"description":5985},"image-compress-guide","blog\u002Fimage-compress-guide",[968,5992,5993],"SEO","Core Web Vitals","Ey8g1pEDQwSyU-EUzZGf5O3w7cY2ZPIiGZ56wTtCHfw",{"id":5996,"title":5997,"author":6,"body":5998,"category":257,"coverImage":258,"description":6279,"draft":260,"extension":261,"locale":262,"meta":6280,"navigation":264,"noindex":260,"path":6281,"publishedAt":4377,"seo":6282,"slug":6283,"stem":6284,"tags":6285,"updatedAt":4377,"__hash__":6286},"blog\u002Fblog\u002Fimage-compress-quality-tips.md","画像圧縮で画質を落とさない 7 つの設定 — 実際の数値とサンプル付き",{"type":8,"value":5999,"toc":6267},[6000,6003,6007,6018,6021,6025,6028,6110,6116,6120,6140,6146,6150,6153,6161,6170,6174,6181,6185,6188,6200,6204,6211,6215,6218,6224,6228,6233,6247,6250,6252,6262],[11,6001,6002],{},"「画像を軽くしたいけど、ぼやけるのは困る」。この矛盾を解消するための実用的な設定を 7 つ紹介します。実際の数値と判断基準まで踏み込んで解説するので、今日からすぐ使えます。",[23,6004,6006],{"id":6005},"画質を落とさないの本当の意味","「画質を落とさない」の本当の意味",[11,6008,6009,6010,6013,6014,6017],{},"人間の目は",[33,6011,6012],{},"圧縮によるロス","を必ずしも認識しません。たとえば JPG の品質 85% と 100% は、肉眼で区別できないケースが大多数です。それでも「画質を落とさない」と言うとき、多くの人は ",[33,6015,6016],{},"「ぼやけない」「色が変わらない」「輪郭がギザギザにならない」"," を同時に満たす状態を望んでいます。",[11,6019,6020],{},"設定次第で、この 3 つを保ったまま容量を 40〜60% 削減できます。",[23,6022,6024],{"id":6023},"設定-1-jpg-品質は-85-を目安に","設定 1: JPG 品質は 85% を目安に",[11,6026,6027],{},"JPG の品質スライダーは 0〜100 の範囲。",[5528,6029,6030,6043],{},[5531,6031,6032],{},[5534,6033,6034,6037,6040],{},[5537,6035,6036],{},"品質",[5537,6038,6039],{},"体感画質",[5537,6041,6042],{},"容量目安 (元比)",[5544,6044,6045,6056,6066,6077,6088,6099],{},[5534,6046,6047,6050,6053],{},[5549,6048,6049],{},"100",[5549,6051,6052],{},"最高",[5549,6054,6055],{},"100%",[5534,6057,6058,6061,6063],{},[5549,6059,6060],{},"95",[5549,6062,6052],{},[5549,6064,6065],{},"70%",[5534,6067,6068,6071,6074],{},[5549,6069,6070],{},"85",[5549,6072,6073],{},"ほぼ最高",[5549,6075,6076],{},"40%",[5534,6078,6079,6082,6085],{},[5549,6080,6081],{},"75",[5549,6083,6084],{},"良好",[5549,6086,6087],{},"30%",[5534,6089,6090,6093,6096],{},[5549,6091,6092],{},"60",[5549,6094,6095],{},"ノイズが見え始める",[5549,6097,6098],{},"22%",[5534,6100,6101,6104,6107],{},[5549,6102,6103],{},"40",[5549,6105,6106],{},"明らかに劣化",[5549,6108,6109],{},"15%",[11,6111,6112,6115],{},[33,6113,6114],{},"85% が黄金点","です。これより上は容量効率が悪く、これより下はブロックノイズが目立ち始めます。",[23,6117,6119],{"id":6118},"設定-2-png-は用途で判断","設定 2: PNG は用途で判断",[27,6121,6122,6128,6134],{},[30,6123,6124,6127],{},[33,6125,6126],{},"スクリーンショット・図解",": PNG (可逆 = 文字のエッジが潰れない)",[30,6129,6130,6133],{},[33,6131,6132],{},"写真",": JPG (PNG だと 5〜10 倍の容量になる)",[30,6135,6136,6139],{},[33,6137,6138],{},"ロゴ (透過必要)",": PNG or SVG",[11,6141,6142,6143,2648],{},"「PNG は画質が落ちないから安心」は",[33,6144,6145],{},"写真では容量を大きく無駄にする判断",[23,6147,6149],{"id":6148},"設定-3-webp-avif-を検討する","設定 3: WebP \u002F AVIF を検討する",[11,6151,6152],{},"2026 年時点で WebP はほぼ全ブラウザ対応。AVIF も主要ブラウザで使えます。",[27,6154,6155,6158],{},[30,6156,6157],{},"WebP (lossy): JPG より 25〜30% 軽く、画質は同等以上",[30,6159,6160],{},"AVIF: さらに軽く、品質もさらに上。ただしエンコード時間がかかる",[11,6162,6163,6166,6167,6169],{},[33,6164,6165],{},"新規案件は WebP を第一選択","、フォールバックで JPG \u002F PNG を ",[102,6168,5729],{}," で用意するのが安全です。",[23,6171,6173],{"id":6172},"設定-4-元画像より拡大しない","設定 4: 元画像より拡大しない",[11,6175,6176,6177,6180],{},"元画像が 800px のものを 1600px に拡大して保存しても画質は上がりません。補間でぼやけるだけです。",[33,6178,6179],{},"元画像の最大サイズを上限","にするのが鉄則です。",[23,6182,6184],{"id":6183},"設定-5-圧縮前にリサイズを済ませる","設定 5: 圧縮前にリサイズを済ませる",[11,6186,6187],{},"これが一番効果の大きいコツです。300px で表示する画像を 3000px のまま圧縮するのは、帯域の無駄でしかありません。",[11,6189,6190,1253,6193,6195,6196,6199],{},[33,6191,6192],{},"順序は「リサイズ → 圧縮」",[17,6194,5795],{"href":934}," で先に表示サイズに揃えてから、",[17,6197,6198],{"href":243},"画像圧縮ツール"," にかけます。",[23,6201,6203],{"id":6202},"設定-6-メタデータ-exif-の扱い","設定 6: メタデータ (EXIF) の扱い",[11,6205,6206,6207,6210],{},"スマホ写真には EXIF (撮影日時・GPS 位置・カメラ機種) が埋め込まれています。ファイルサイズ的には数十 KB 程度ですが、",[33,6208,6209],{},"プライバシー上の問題","にもなります。Zerosend の画像圧縮は保存時に EXIF を自動削除します。",[23,6212,6214],{"id":6213},"設定-7-二重圧縮を避ける","設定 7: 二重圧縮を避ける",[11,6216,6217],{},"非可逆圧縮は毎回わずかに情報を捨てます。「圧縮 → アップ → また圧縮」を繰り返すと、画質が階段状に劣化していきます。",[11,6219,6220,6223],{},[33,6221,6222],{},"元画像から 1 回だけ","圧縮する運用を徹底しましょう。バックアップとして元画像は必ず保持しておきます。",[23,6225,6227],{"id":6226},"zerosend-で試す","Zerosend で試す",[11,6229,6230,6232],{},[17,6231,6198],{"href":243}," は上記の設定を全部反映できます。",[27,6234,6235,6238,6241,6244],{},[30,6236,6237],{},"品質スライダー (1〜100、デフォルト 80)",[30,6239,6240],{},"JPG \u002F PNG \u002F WebP から出力形式を選択",[30,6242,6243],{},"EXIF 自動除去",[30,6245,6246],{},"ブラウザ内で完結、外部送信なし",[11,6248,6249],{},"ドラッグ&ドロップで複数画像の一括処理も使えます。",[23,6251,4316],{"id":4316},[11,6253,6254,6255,6258,6259,1253],{},"「画質を落とさず軽くする」は、",[33,6256,6257],{},"品質 85% を目安に、先にリサイズし、余計なメタデータを削る","という 3 つの基本で 80% 達成できます。残りの 20% はフォーマット選択と二重圧縮の回避です。",[17,6260,6261],{"href":243},"実際に試してみてください",[11,6263,4334,6264],{},[17,6265,6266],{"href":5987},"画像圧縮 完全ガイド 2026",{"title":247,"searchDepth":248,"depth":248,"links":6268},[6269,6270,6271,6272,6273,6274,6275,6276,6277,6278],{"id":6005,"depth":248,"text":6006},{"id":6023,"depth":248,"text":6024},{"id":6118,"depth":248,"text":6119},{"id":6148,"depth":248,"text":6149},{"id":6172,"depth":248,"text":6173},{"id":6183,"depth":248,"text":6184},{"id":6202,"depth":248,"text":6203},{"id":6213,"depth":248,"text":6214},{"id":6226,"depth":248,"text":6227},{"id":4316,"depth":248,"text":4316},"画像圧縮で画質が落ちるのは設定次第で大きく抑えられます。JPG 品質 85% 黄金ルール、フォーマット選択、リサイズとの組み合わせを具体的な数値で解説します。",{},"\u002Fblog\u002Fimage-compress-quality-tips",{"title":5997,"description":6279},"image-compress-quality-tips","blog\u002Fimage-compress-quality-tips",[968,2175],"tBTJu9KgKQi7S5WtxGLRDxIMuhho4weTTNqohC4Qt7c",{"id":6288,"title":6289,"author":6,"body":6290,"category":257,"coverImage":258,"description":6575,"draft":260,"extension":261,"locale":262,"meta":6576,"navigation":264,"noindex":260,"path":6577,"publishedAt":4377,"seo":6578,"slug":6579,"stem":6580,"tags":6581,"updatedAt":4377,"__hash__":6584},"blog\u002Fblog\u002Fpdf-merge-guide.md","PDF 結合 無料 — 顧客情報をアップロードせずに処理する完全手順 2026",{"type":8,"value":6291,"toc":6542},[6292,6299,6303,6306,6309,6312,6315,6319,6322,6326,6330,6337,6347,6351,6354,6358,6361,6365,6372,6376,6398,6401,6405,6412,6415,6418,6438,6442,6445,6448,6455,6458,6461,6465,6469,6472,6476,6479,6483,6494,6498,6500,6503,6506,6509,6511,6518,6521,6523,6532],[11,6293,6294,6295,6298],{},"複数の PDF を 1 つに結合したいが、契約書や請求書を見ず知らずのサーバーに送るのは気が引ける。そんな時に使えるのが、ブラウザだけで完結する ",[17,6296,6297],{"href":2002},"Zerosend の PDF 結合ツール"," です。本記事では選び方のポイント、よくあるトラブル、B2B 現場で使う運用ルールまでまとめます。",[23,6300,6302],{"id":6301},"pdf-結合が業務で必要になる典型シーン","PDF 結合が業務で必要になる典型シーン",[385,6304,6305],{"id":6305},"請求書の月次まとめ",[11,6307,6308],{},"取引先ごとに発行された請求書 PDF を、月末に 1 本の PDF にまとめて経理に回す。毎月繰り返している個人事業主や中小事業主は多いはずです。",[385,6310,6311],{"id":6311},"複数ファイルで届いた契約書の統合",[11,6313,6314],{},"「表紙」「本文」「別紙」「押印欄」が別々の PDF で届くケースは少なくありません。署名前に 1 本にまとめておくと、先方への送付もアーカイブもシンプルになります。",[385,6316,6318],{"id":6317},"スキャン-pdf-添付資料の一体化","スキャン PDF + 添付資料の一体化",[11,6320,6321],{},"紙の書類をスキャンした PDF に、別で作った Excel\u002FWord の PDF 出力を結合して提出するパターン。士業や官公庁関連の手続きで頻出します。",[23,6323,6325],{"id":6324},"無料-pdf-結合ツールの選び方-4-つの判断基準","無料 PDF 結合ツールの選び方 — 4 つの判断基準",[385,6327,6329],{"id":6328},"_1-ファイルがサーバーに送られないか","1. ファイルがサーバーに送られないか",[11,6331,6332,6333,6336],{},"オンラインで使える PDF 結合ツールの多くは、ファイルを一度サーバーへアップロードしてから処理します。ほとんどのサービスは処理後にサーバー上のファイルを消すと明言していますが、",[33,6334,6335],{},"NDA 下の契約書や顧客情報を含む PDF を外部に送ること自体が問題","になる場面があります。",[11,6338,6339,6340,6343,6344,5847],{},"判定は DevTools の Network タブで簡単にできます。",[17,6341,6342],{"href":2002},"Zerosend の PDF 結合"," はブラウザ内で完結するため、ここで",[33,6345,6346],{},"通信ゼロ",[385,6348,6350],{"id":6349},"_2-結合順の制御","2. 結合順の制御",[11,6352,6353],{},"ドラッグ&ドロップで並び替えができるか、ファイル名の自動ソートしか受け付けないかは大きな差。実務では並び替えが必要になるシーンが多いはずです。",[385,6355,6357],{"id":6356},"_3-パスワード付き-pdf-に対応するか","3. パスワード付き PDF に対応するか",[11,6359,6360],{},"社内で暗号化された PDF は、結合する前に一度ロック解除が必要です。現状の Zerosend は非対応なので、先に Acrobat 等で解除してから結合してください。",[385,6362,6364],{"id":6363},"_4-ファイルサイズ枚数の上限","4. ファイルサイズ・枚数の上限",[11,6366,6367,6368,6371],{},"大きな PDF 数十枚の結合はメモリを使います。ブラウザ内処理ツールは",[33,6369,6370],{},"数百 MB 級で動作が不安定","になることがあるので、サイズ上限と処理速度を事前に確認してください。Zerosend は 1 ファイル 100 MB までを推奨しています。",[23,6373,6375],{"id":6374},"zerosend-でアップロードせずに結合する手順","Zerosend でアップロードせずに結合する手順",[75,6377,6378,6382,6385,6392,6395],{},[30,6379,6380,5033],{},[17,6381,2002],{"href":2002},[30,6383,6384],{},"結合したい PDF を複数ドラッグ&ドロップ",[30,6386,6387,6388,6391],{},"リストを",[33,6389,6390],{},"ドラッグで並び替え","て希望の順序に",[30,6393,6394],{},"「結合する」ボタン",[30,6396,6397],{},"結合後の PDF を即ダウンロード",[11,6399,6400],{},"全工程がブラウザ内で実行されるため、処理中に外部通信は発生しません。",[385,6402,6404],{"id":6403},"ダウンロード前に-network-タブで検証する","ダウンロード前に Network タブで検証する",[11,6406,6407,6408,6411],{},"DevTools → Network タブを開いた状態で結合を実行すると、",[33,6409,6410],{},"PDF の中身が通信ペイロードに乗っていない"," ことが目視できます。この検証可能性が Zerosend の強みです。",[23,6413,6414],{"id":6414},"よくあるトラブルと対処",[385,6416,6417],{"id":6417},"結合順が希望通りにならない",[27,6419,6420,6435],{},[30,6421,6422,6423,6426,6427,6430,6431,6434],{},"ファイル名が ",[102,6424,6425],{},"1, 2, 10, 11, 2-2"," のように桁数が違うと、文字列ソートで 1 → 10 → 11 → 2 の順になります。",[33,6428,6429],{},"ゼロパディング"," (",[102,6432,6433],{},"01, 02, 10, 11",") で解決します",[30,6436,6437],{},"Zerosend ではリストをドラッグして明示的に並び替えるのが確実です",[385,6439,6441],{"id":6440},"パスワード付き-pdf-が開けない","パスワード付き PDF が開けない",[11,6443,6444],{},"先にロック解除してから Zerosend に持ち込むか、デスクトップアプリを併用してください。パスワード対応は今後の検討事項です。",[385,6446,6447],{"id":6447},"結合後のファイルサイズが大きい",[11,6449,6450,6451,6454],{},"結合すると中身がそのまま積み重なるため、元の合計より少し大きくなります。メール添付できないサイズになったら、",[17,6452,6453],{"href":1995},"PDF 圧縮ツール"," で後処理します。",[385,6456,6457],{"id":6457},"文字化け",[11,6459,6460],{},"フォントが埋め込まれていない PDF は、結合後に一部フォントが別物になって文字化けすることがあります。フォント埋め込みで出力し直すのが確実です。",[23,6462,6464],{"id":6463},"b2b-業務での運用ルール-3-選","B2B 業務での運用ルール 3 選",[385,6466,6468],{"id":6467},"_1-顧客情報を含む-pdf-はどこで処理するか明文化","1. 顧客情報を含む PDF はどこで処理するか明文化",[11,6470,6471],{},"「個人情報を含む PDF は外部 SaaS にアップロードしない」と社内ルールで決めている企業は増えています。ブラウザ内処理ツールに切り替えるだけで、このルールに抵触しにくくなります。",[385,6473,6475],{"id":6474},"_2-共有フォルダに結合後を置く元ファイルは削除","2. 共有フォルダに結合後を置く、元ファイルは削除",[11,6477,6478],{},"結合後に元の分割ファイルが残っていると、どちらが「最新版」か分からなくなります。チームで扱う場合は、結合後を共有し元は個人のアーカイブに退避するのがおすすめです。",[385,6480,6482],{"id":6481},"_3-監査ログを要求される環境での選択","3. 監査ログを要求される環境での選択",[11,6484,6485,6486,6489,6490,6493],{},"監査・法務から「誰が・いつ・どの SaaS で処理したか」のログを求められる場合、クラウドサービスより",[33,6487,6488],{},"ローカル完結型","のほうがログの出所が明確です。DevTools で通信が発生していないことを",[33,6491,6492],{},"自分で確認した記録","は、第三者監査に対しても説明が付きやすくなります。",[23,6495,6497],{"id":6496},"pdf-結合ツールの-3-類型とプライバシー観点での選び方","PDF 結合ツールの 3 類型とプライバシー観点での選び方",[385,6499,4986],{"id":4985},[11,6501,6502],{},"機能が豊富で UI が洗練されている傾向。ただしファイルはサーバーに送られるため、機密書類には不向き。",[385,6504,6505],{"id":6505},"デスクトップアプリ型",[11,6507,6508],{},"Acrobat 等の本格アプリや、OSS のユーティリティ。インストールと設定が必要だが、ローカル完結でセキュアに処理できます。",[385,6510,4999],{"id":4999},[11,6512,6513,6514,6517],{},"Zerosend のような",[33,6515,6516],{},"インストール不要でローカル完結","なタイプ。PC を変えても使える気軽さと、送信しない安心感を両立しています。",[11,6519,6520],{},"業務要件の機密度・操作感の好み・頻度によって使い分けるのが実務的です。",[23,6522,4316],{"id":4316},[11,6524,6525,6526,6529,6530,1253],{},"PDF 結合はシンプルな作業ですが、扱う情報の性質を考えると",[33,6527,6528],{},"ツール選びは慎重に","なるべき場面です。Zerosend の PDF 結合はブラウザ内で完結し、DevTools で自ら検証できる透明性があります。",[17,6531,5363],{"href":2002},[11,6533,4334,6534,6538,6539],{},[17,6535,6537],{"href":6536},"\u002Fblog\u002Fpdf-merge-order-tips","PDF 結合で順番が狂う時のチェックリスト"," (近日公開) \u002F ",[17,6540,6541],{"href":4341},"プライバシー重視のオンラインツール",{"title":247,"searchDepth":248,"depth":248,"links":6543},[6544,6549,6555,6558,6564,6569,6574],{"id":6301,"depth":248,"text":6302,"children":6545},[6546,6547,6548],{"id":6305,"depth":513,"text":6305},{"id":6311,"depth":513,"text":6311},{"id":6317,"depth":513,"text":6318},{"id":6324,"depth":248,"text":6325,"children":6550},[6551,6552,6553,6554],{"id":6328,"depth":513,"text":6329},{"id":6349,"depth":513,"text":6350},{"id":6356,"depth":513,"text":6357},{"id":6363,"depth":513,"text":6364},{"id":6374,"depth":248,"text":6375,"children":6556},[6557],{"id":6403,"depth":513,"text":6404},{"id":6414,"depth":248,"text":6414,"children":6559},[6560,6561,6562,6563],{"id":6417,"depth":513,"text":6417},{"id":6440,"depth":513,"text":6441},{"id":6447,"depth":513,"text":6447},{"id":6457,"depth":513,"text":6457},{"id":6463,"depth":248,"text":6464,"children":6565},[6566,6567,6568],{"id":6467,"depth":513,"text":6468},{"id":6474,"depth":513,"text":6475},{"id":6481,"depth":513,"text":6482},{"id":6496,"depth":248,"text":6497,"children":6570},[6571,6572,6573],{"id":4985,"depth":513,"text":4986},{"id":6505,"depth":513,"text":6505},{"id":4999,"depth":513,"text":4999},{"id":4316,"depth":248,"text":4316},"複数の PDF を結合したい、でも契約書や請求書を SaaS に預けたくない事業主へ。Zerosend ならブラウザ内で完結します。無料ツールの選び方、順番トラブルの対処、B2B 運用ルールまで解説します。",{},"\u002Fblog\u002Fpdf-merge-guide",{"title":6289,"description":6575},"pdf-merge-guide","blog\u002Fpdf-merge-guide",[2027,6582,6583],"業務","プライバシー","693R7dy2ua2xYfX0itJl3ztvPVuvdzZMDN76qSvgFCw",{"id":6586,"title":6587,"author":6,"body":6588,"category":257,"coverImage":258,"description":7042,"draft":260,"extension":261,"locale":262,"meta":7043,"navigation":264,"noindex":260,"path":6536,"publishedAt":4377,"seo":7044,"slug":7045,"stem":7046,"tags":7047,"updatedAt":4377,"__hash__":7048},"blog\u002Fblog\u002Fpdf-merge-order-tips.md","PDF 結合で順番が狂う原因と、確実に希望順にする 5 つの方法",{"type":8,"value":6589,"toc":7021},[6590,6593,6596,6599,6602,6622,6631,6634,6645,6649,6656,6663,6667,6674,6690,6693,6697,6708,6712,6719,6723,6730,6734,6739,6743,6749,6962,6969,6972,6976,6984,6987,7001,7003,7013,7018],[11,6591,6592],{},"PDF を複数まとめて結合した後に「順番が想定と違う!」となる事故は地味によく発生します。原因はシンプルですが、知らないと何度もハマります。",[23,6594,6595],{"id":6595},"なぜ順番が狂うのか",[385,6597,6598],{"id":6598},"並び替え基準はツールごとに違う",[11,6600,6601],{},"ファイルを複数選択してツールに入れたとき、何の順で並ぶかはツール次第です。",[27,6603,6604,6610,6616],{},[30,6605,6606,6609],{},[33,6607,6608],{},"追加順"," (選択した順番のまま)",[30,6611,6612,6615],{},[33,6613,6614],{},"文字列順"," (ファイル名のアルファベット・数字順)",[30,6617,6618,6621],{},[33,6619,6620],{},"更新日時順"," (新しい順 or 古い順)",[11,6623,6624,6625,6630],{},"特に「文字列順」では ",[33,6626,6627],{},[102,6628,6629],{},"1, 10, 11, 2, 20, 3"," のような並びになります。これが事故の 8 割の原因です。",[385,6632,6633],{"id":6633},"日本語ファイル名と数字の罠",[27,6635,6636,6642],{},[30,6637,6638,6641],{},[102,6639,6640],{},"請求書1.pdf, 請求書10.pdf, 請求書2.pdf"," → 文字列順では 1 → 10 → 2",[30,6643,6644],{},"半角数字と全角数字が混在するとさらに狂う",[23,6646,6648],{"id":6647},"_5-つの解決方法","5 つの解決方法",[385,6650,6652,6653,3227],{"id":6651},"_1-ファイル名の頭に連番を振る-01_-02_","1. ファイル名の頭に連番を振る (",[102,6654,6655],{},"01_ \u002F 02_",[11,6657,6658,6659,6662],{},"先頭にゼロ埋めの連番を付けるのが最もシンプルです。",[102,6660,6661],{},"01_表紙.pdf, 02_本文.pdf, 03_押印.pdf"," のようにします。",[385,6664,6666],{"id":6665},"_2-ゼロパディングで並びを揃える","2. ゼロパディングで並びを揃える",[11,6668,6669,6670,6673],{},"既存のファイルに連番があるなら、",[33,6671,6672],{},"桁数を揃える","だけで解決します。",[27,6675,6676,6683],{},[30,6677,6678,6679,6682],{},"誤: ",[102,6680,6681],{},"1.pdf, 2.pdf, ..., 10.pdf"," → 並びが狂う",[30,6684,6685,6686,6689],{},"正: ",[102,6687,6688],{},"01.pdf, 02.pdf, ..., 10.pdf"," → 正しい順序",[11,6691,6692],{},"10 以上 100 未満なら 2 桁パディング、100 以上なら 3 桁、と先読みして決めます。",[385,6694,6696],{"id":6695},"_3-ドラッグドロップで手動並び替え","3. ドラッグ&ドロップで手動並び替え",[11,6698,6699,6700,6703,6704,6707],{},"ファイル名をいじれない \u002F いじりたくない場合は、ツール側で",[33,6701,6702],{},"ドラッグ並び替え","できるものを選びます。Zerosend の ",[17,6705,6706],{"href":2002},"PDF 結合ツール"," はこの方式で、並び順を目視で確認してから結合できます。",[385,6709,6711],{"id":6710},"_4-ページ単位で並び替える時は-pdf-ページ編集ツール","4. ページ単位で並び替える時は PDF ページ編集ツール",[11,6713,6714,6715,6718],{},"結合する PDF 内のページ順自体を変えたい場合は、先に ",[17,6716,6717],{"href":2189},"PDF ページ編集ツール"," で整えておきます。結合ツールに入れる前段階で解決しておくのがトラブル回避のコツです。",[385,6720,6722],{"id":6721},"_5-バッチ処理前にテスト結合","5. バッチ処理前にテスト結合",[11,6724,6725,6726,6729],{},"月末に 50 ファイル結合するようなオペレーションでは、",[33,6727,6728],{},"3 ファイル程度のテスト結合を先にやる","のが安全です。並び順の仮説がそのツールで成立するか確認できます。",[23,6731,6733],{"id":6732},"zerosend-での並び替え-ux","Zerosend での並び替え UX",[11,6735,6736,6738],{},[17,6737,6342],{"href":2002}," では、ファイル追加後にリストがドラッグで並び替え可能な UI になっています。視覚的にどの順で結合されるかを確認してから実行できるので、事故が起きにくい設計です。",[23,6740,6742],{"id":6741},"スクリプトで自動化する場合-開発者向け","スクリプトで自動化する場合 (開発者向け)",[11,6744,6745,6746,6748],{},"Node.js の ",[102,6747,1914],{}," で結合するサンプル:",[4282,6750,6754],{"className":6751,"code":6752,"language":6753,"meta":247,"style":247},"language-typescript shiki shiki-themes github-light github-dark","import { PDFDocument } from 'pdf-lib'\nimport { readFileSync, writeFileSync } from 'node:fs'\n\nconst files = ['01.pdf', '02.pdf', '03.pdf']  \u002F\u002F 明示的に順序指定\nconst out = await PDFDocument.create()\nfor (const f of files) {\n  const src = await PDFDocument.load(readFileSync(f))\n  const pages = await out.copyPages(src, src.getPageIndices())\n  for (const p of pages) out.addPage(p)\n}\nwriteFileSync('merged.pdf', await out.save())\n","typescript",[102,6755,6756,6771,6783,6788,6822,6843,6861,6887,6913,6936,6940],{"__ignoreMap":247},[4521,6757,6758,6762,6765,6768],{"class":4523,"line":4524},[4521,6759,6761],{"class":6760},"szBVR","import",[4521,6763,6764],{"class":4527}," { PDFDocument } ",[4521,6766,6767],{"class":6760},"from",[4521,6769,6770],{"class":4590}," 'pdf-lib'\n",[4521,6772,6773,6775,6778,6780],{"class":4523,"line":248},[4521,6774,6761],{"class":6760},[4521,6776,6777],{"class":4527}," { readFileSync, writeFileSync } ",[4521,6779,6767],{"class":6760},[4521,6781,6782],{"class":4590}," 'node:fs'\n",[4521,6784,6785],{"class":4523,"line":513},[4521,6786,6787],{"emptyLinePlaceholder":264},"\n",[4521,6789,6790,6793,6796,6799,6802,6805,6807,6810,6812,6815,6818],{"class":4523,"line":4553},[4521,6791,6792],{"class":6760},"const",[4521,6794,6795],{"class":4658}," files",[4521,6797,6798],{"class":6760}," =",[4521,6800,6801],{"class":4527}," [",[4521,6803,6804],{"class":4590},"'01.pdf'",[4521,6806,430],{"class":4527},[4521,6808,6809],{"class":4590},"'02.pdf'",[4521,6811,430],{"class":4527},[4521,6813,6814],{"class":4590},"'03.pdf'",[4521,6816,6817],{"class":4527},"]  ",[4521,6819,6821],{"class":6820},"sJ8bj","\u002F\u002F 明示的に順序指定\n",[4521,6823,6824,6826,6829,6831,6834,6837,6840],{"class":4523,"line":4559},[4521,6825,6792],{"class":6760},[4521,6827,6828],{"class":4658}," out",[4521,6830,6798],{"class":6760},[4521,6832,6833],{"class":6760}," await",[4521,6835,6836],{"class":4527}," PDFDocument.",[4521,6838,6839],{"class":4583},"create",[4521,6841,6842],{"class":4527},"()\n",[4521,6844,6845,6848,6850,6852,6855,6858],{"class":4523,"line":4565},[4521,6846,6847],{"class":6760},"for",[4521,6849,6430],{"class":4527},[4521,6851,6792],{"class":6760},[4521,6853,6854],{"class":4658}," f",[4521,6856,6857],{"class":6760}," of",[4521,6859,6860],{"class":4527}," files) {\n",[4521,6862,6863,6866,6869,6871,6873,6875,6878,6881,6884],{"class":4523,"line":4575},[4521,6864,6865],{"class":6760},"  const",[4521,6867,6868],{"class":4658}," src",[4521,6870,6798],{"class":6760},[4521,6872,6833],{"class":6760},[4521,6874,6836],{"class":4527},[4521,6876,6877],{"class":4583},"load",[4521,6879,6880],{"class":4527},"(",[4521,6882,6883],{"class":4583},"readFileSync",[4521,6885,6886],{"class":4527},"(f))\n",[4521,6888,6889,6891,6894,6896,6898,6901,6904,6907,6910],{"class":4523,"line":4597},[4521,6890,6865],{"class":6760},[4521,6892,6893],{"class":4658}," pages",[4521,6895,6798],{"class":6760},[4521,6897,6833],{"class":6760},[4521,6899,6900],{"class":4527}," out.",[4521,6902,6903],{"class":4583},"copyPages",[4521,6905,6906],{"class":4527},"(src, src.",[4521,6908,6909],{"class":4583},"getPageIndices",[4521,6911,6912],{"class":4527},"())\n",[4521,6914,6915,6918,6920,6922,6925,6927,6930,6933],{"class":4523,"line":4774},[4521,6916,6917],{"class":6760},"  for",[4521,6919,6430],{"class":4527},[4521,6921,6792],{"class":6760},[4521,6923,6924],{"class":4658}," p",[4521,6926,6857],{"class":6760},[4521,6928,6929],{"class":4527}," pages) out.",[4521,6931,6932],{"class":4583},"addPage",[4521,6934,6935],{"class":4527},"(p)\n",[4521,6937,6938],{"class":4523,"line":4787},[4521,6939,4801],{"class":4527},[4521,6941,6942,6945,6947,6950,6952,6955,6957,6960],{"class":4523,"line":4798},[4521,6943,6944],{"class":4583},"writeFileSync",[4521,6946,6880],{"class":4527},[4521,6948,6949],{"class":4590},"'merged.pdf'",[4521,6951,430],{"class":4527},[4521,6953,6954],{"class":6760},"await",[4521,6956,6900],{"class":4527},[4521,6958,6959],{"class":4583},"save",[4521,6961,6912],{"class":4527},[11,6963,6964,6965,6968],{},"スクリプトで扱う場合も、",[33,6966,6967],{},"順序はコードで明示的に制御する","のが事故を防ぐ基本です。",[23,6970,6971],{"id":6971},"よくあるケース別サンプル",[385,6973,6975],{"id":6974},"契約書-表紙-本文-押印ページ","契約書 (表紙 + 本文 + 押印ページ)",[27,6977,6978],{},[30,6979,6980,6983],{},[102,6981,6982],{},"01_表紙.pdf, 02_本文.pdf, 03_押印欄.pdf"," の命名を運用ルール化",[385,6985,6986],{"id":6986},"請求書月次結合",[27,6988,6989,6998],{},[30,6990,6991,6994,6995],{},[102,6992,6993],{},"2026-04-01_ClientA.pdf, 2026-04-05_ClientB.pdf"," のように ",[33,6996,6997],{},"年月日を頭に",[30,6999,7000],{},"文字列ソートで自然に日付順になる",[23,7002,4316],{"id":4316},[11,7004,7005,7006,7009,7010,7012],{},"並び順のトラブルは「ファイル名の命名規則」と「ツールの並び替え挙動」で完結する問題です。",[33,7007,7008],{},"ゼロパディング + ドラッグ並び替え対応ツール","の組み合わせで、事故はほぼゼロにできます。",[17,7011,6342],{"href":2002}," で試してみてください。",[11,7014,4334,7015],{},[17,7016,7017],{"href":6577},"PDF 結合 完全手順 2026",[4543,7019,7020],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":247,"searchDepth":248,"depth":248,"links":7022},[7023,7027,7035,7036,7037,7041],{"id":6595,"depth":248,"text":6595,"children":7024},[7025,7026],{"id":6598,"depth":513,"text":6598},{"id":6633,"depth":513,"text":6633},{"id":6647,"depth":248,"text":6648,"children":7028},[7029,7031,7032,7033,7034],{"id":6651,"depth":513,"text":7030},"1. ファイル名の頭に連番を振る (01_ \u002F 02_)",{"id":6665,"depth":513,"text":6666},{"id":6695,"depth":513,"text":6696},{"id":6710,"depth":513,"text":6711},{"id":6721,"depth":513,"text":6722},{"id":6732,"depth":248,"text":6733},{"id":6741,"depth":248,"text":6742},{"id":6971,"depth":248,"text":6971,"children":7038},[7039,7040],{"id":6974,"depth":513,"text":6975},{"id":6986,"depth":513,"text":6986},{"id":4316,"depth":248,"text":4316},"複数の PDF を結合したら順番がバラバラ… は典型的なトラブルです。原因はソートの仕様にあります。ゼロパディング・ドラッグ並び替え・ページ単位の編集など、5 つの解決方法を解説します。",{},{"title":6587,"description":7042},"pdf-merge-order-tips","blog\u002Fpdf-merge-order-tips",[2027,6582],"-Nbi20dZm0fPeXbEdxhYt_PYbdGDmqR6DSmLvcku5bY",{"id":7050,"title":7051,"author":6,"body":7052,"category":7428,"coverImage":258,"description":7429,"draft":260,"extension":261,"locale":262,"meta":7430,"navigation":264,"noindex":260,"path":7431,"publishedAt":4377,"seo":7432,"slug":7433,"stem":7434,"tags":7435,"updatedAt":4377,"__hash__":7437},"blog\u002Fblog\u002Fprivacy-tools-comparison.md","アップロード不要なファイル処理ツールの選び方 2026 — 3 類型の使い分け",{"type":8,"value":7053,"toc":7406},[7054,7057,7061,7065,7072,7076,7083,7087,7091,7094,7114,7118,7121,7138,7142,7149,7166,7170,7281,7284,7288,7294,7298,7304,7308,7314,7318,7328,7330,7336,7339,7365,7369,7372,7390,7392,7398],[11,7055,7056],{},"ファイルをサーバーに預けずに処理する選択肢は、ここ数年で現実的になりました。本記事では「どの方式を、どんな時に選べばいいか」を 3 類型で整理します。",[23,7058,7060],{"id":7059},"なぜアップロードしないが業務の要件になるのか","なぜ「アップロードしない」が業務の要件になるのか",[385,7062,7064],{"id":7063},"_2025-年以降のデータ保護要件-個人情報保護法改正","2025 年以降のデータ保護要件 (個人情報保護法改正)",[11,7066,7067,7068,7071],{},"日本の個人情報保護法改正で、個人情報を取り扱う事業者の説明責任が強まりました。",[33,7069,7070],{},"顧客の個人情報が含まれるファイルを外部 SaaS にアップロードする","際、少なくとも利用規約・プライバシーポリシーの確認と社内ルールでの合意が求められるケースが増えています。",[385,7073,7075],{"id":7074},"nda-案件受託案件医療-士業での制約","NDA 案件・受託案件・医療 \u002F 士業での制約",[11,7077,7078,7079,7082],{},"受託案件の成果物・医療機関の診療データ・士業が扱う顧客情報は、そもそも",[33,7080,7081],{},"外部にアップロードしてはいけない契約","になっていることが多いです。この場合、ブラウザ内完結型またはローカルアプリ型しか選択肢がありません。",[23,7084,7086],{"id":7085},"ファイル処理ツールの-3-類型","ファイル処理ツールの 3 類型",[385,7088,7090],{"id":7089},"類型-a-アップロード型オンライン-saas","類型 A: アップロード型オンライン SaaS",[11,7092,7093],{},"ブラウザでアクセスしてファイルをアップロード、サーバー側で処理、結果をダウンロードする方式。",[27,7095,7096,7102,7108],{},[30,7097,7098,7101],{},[33,7099,7100],{},"強み",": 機能が豊富。UI が洗練されている。どの端末からでも同じ体験。",[30,7103,7104,7107],{},[33,7105,7106],{},"弱み",": 機密ファイルには使えない。通信遅延あり。",[30,7109,7110,7113],{},[33,7111,7112],{},"適する場面",": 公開済みの画像、共有して良いドキュメントの軽作業。",[385,7115,7117],{"id":7116},"類型-b-デスクトップアプリ","類型 B: デスクトップアプリ",[11,7119,7120],{},"PC にインストールして使うツール。商用アプリも OSS も含みます。",[27,7122,7123,7128,7133],{},[30,7124,7125,7127],{},[33,7126,7100],{},": ローカル完結で速い。機能が深い。複雑な処理に強い。",[30,7129,7130,7132],{},[33,7131,7106],{},": インストールと設定が必要。PC が変わると毎回セットアップ。",[30,7134,7135,7137],{},[33,7136,7112],{},": 日常的にヘビーユースする制作者・業務者。",[385,7139,7141],{"id":7140},"類型-c-ブラウザ内完結型-zerosend-が採用","類型 C: ブラウザ内完結型 (Zerosend が採用)",[11,7143,7144,7145,7148],{},"ブラウザでアクセスするが、ファイルはサーバーに送らず",[33,7146,7147],{},"ブラウザ内 JavaScript \u002F WebAssembly で処理","する方式。",[27,7150,7151,7156,7161],{},[30,7152,7153,7155],{},[33,7154,7100],{},": インストール不要。ローカル完結で送信ゼロ。すぐ使える。",[30,7157,7158,7160],{},[33,7159,7106],{},": 数 GB 級のファイルは苦手 (メモリ上限)。機能はアプリ型より浅い場合がある。",[30,7162,7163,7165],{},[33,7164,7112],{},": 機密ファイルを含む日常的な作業、受託案件、士業・医療の業務補助。",[23,7167,7169],{"id":7168},"類型別の強み弱み比較","類型別の強み・弱み比較",[5528,7171,7172,7188],{},[5531,7173,7174],{},[5534,7175,7176,7179,7182,7185],{},[5537,7177,7178],{},"観点",[5537,7180,7181],{},"類型 A (SaaS)",[5537,7183,7184],{},"類型 B (アプリ)",[5537,7186,7187],{},"類型 C (ブラウザ内)",[5544,7189,7190,7203,7216,7229,7243,7257,7270],{},[5534,7191,7192,7195,7198,7201],{},[5549,7193,7194],{},"インストール",[5549,7196,7197],{},"不要",[5549,7199,7200],{},"必要",[5549,7202,7197],{},[5534,7204,7205,7208,7211,7214],{},[5549,7206,7207],{},"ネットワーク送信",[5549,7209,7210],{},"あり (本体)",[5549,7212,7213],{},"なし",[5549,7215,7213],{},[5534,7217,7218,7221,7224,7227],{},[5549,7219,7220],{},"複数端末利用",[5549,7222,7223],{},"容易",[5549,7225,7226],{},"端末ごと設定",[5549,7228,7223],{},[5534,7230,7231,7234,7237,7240],{},[5549,7232,7233],{},"速度",[5549,7235,7236],{},"通信待ちあり",[5549,7238,7239],{},"最速",[5549,7241,7242],{},"端末性能次第",[5534,7244,7245,7248,7251,7254],{},[5549,7246,7247],{},"機能の深さ",[5549,7249,7250],{},"深い",[5549,7252,7253],{},"最も深い",[5549,7255,7256],{},"中",[5534,7258,7259,7262,7265,7268],{},[5549,7260,7261],{},"機密データ適性",[5549,7263,7264],{},"低",[5549,7266,7267],{},"高",[5549,7269,7267],{},[5534,7271,7272,7275,7277,7279],{},[5549,7273,7274],{},"大容量対応",[5549,7276,7267],{},[5549,7278,7267],{},[5549,7280,7256],{},[23,7282,7283],{"id":7283},"カテゴリ別の選び方",[385,7285,7287],{"id":7286},"画像-圧縮-形式変換","画像 (圧縮 \u002F 形式変換)",[11,7289,7290,7291],{},"日常的な画像圧縮・リサイズ・形式変換はブラウザ内完結型で十分です。Photoshop 級の高度なレタッチはデスクトップアプリ型に軍配。 → ",[17,7292,7293],{"href":243},"Zerosend 画像圧縮",[385,7295,7297],{"id":7296},"pdf-結合-分割-圧縮","PDF (結合 \u002F 分割 \u002F 圧縮)",[11,7299,7300,7301],{},"結合・分割・圧縮などの一般的な処理はブラウザ内完結型が機密データと両立しやすくおすすめです。高度な編集 (埋め込みフォント差し替えなど) はアプリ型が適しています。 → ",[17,7302,7303],{"href":2002},"Zerosend PDF 結合",[385,7305,7307],{"id":7306},"動画-音声","動画 \u002F 音声",[11,7309,7310,7311],{},"短い動画の圧縮・形式変換・トリミングはブラウザ内完結型で実用範囲です。長尺動画 (30 分以上) や 4K 素材の編集はデスクトップアプリ型が現実的。 → ",[17,7312,7313],{"href":502},"Zerosend 動画圧縮",[385,7315,7317],{"id":7316},"qr-コード","QR コード",[11,7319,7320,7321,7324,7325],{},"生成・読み取りどちらもブラウザ内完結型で十分です。QR コードに個人情報が乗るケースもあるため、",[33,7322,7323],{},"生成時に入力したテキストが送信されないこと","は重要な要件です。 → ",[17,7326,7327],{"href":57},"Zerosend QR 生成",[385,7329,5163],{"id":5163},[11,7331,7332,7333],{},"1 枚のロゴから一式を生成するタイプ。NDA 下の未公開ロゴ作成ではブラウザ内完結型が最適です。 → ",[17,7334,7335],{"href":3025},"Zerosend ファビコン生成",[23,7337,7338],{"id":7338},"自分の要件で判定するフローチャート",[75,7340,7341,7347,7353,7359],{},[30,7342,7343,7346],{},[33,7344,7345],{},"機密度が高い"," (顧客情報 \u002F 未公開素材 \u002F 医療データ) → 類型 B or C",[30,7348,7349,7352],{},[33,7350,7351],{},"複数端末・出先でも使いたい"," → 類型 C",[30,7354,7355,7358],{},[33,7356,7357],{},"数 GB の動画 \u002F 複雑な編集"," → 類型 B",[30,7360,7361,7364],{},[33,7362,7363],{},"軽作業のみ + 公開済みデータ"," → 類型 A でも可",[23,7366,7368],{"id":7367},"アップロードしていないの検証方法","「アップロードしていない」の検証方法",[11,7370,7371],{},"ブラウザ内完結型と主張しているツールが本当に送っていないかは、30 秒で検証できます。",[75,7373,7374,7377,7380,7383],{},[30,7375,7376],{},"ブラウザの DevTools を開く (右クリック → 検証)",[30,7378,7379],{},"Network タブに切り替え、「Preserve log」を有効化",[30,7381,7382],{},"ツールを実際に使ってファイルを処理してみる",[30,7384,7385,7386,7389],{},"表示される通信が CDN・解析・広告程度で、",[33,7387,7388],{},"処理対象ファイルを含むリクエストがない","ことを確認",[23,7391,4316],{"id":4316},[11,7393,7394,7395,7397],{},"ファイル処理ツールは「送るか送らないか」で選ぶ時代です。業務の機密度・使用頻度・扱うファイルサイズで 3 類型を使い分けるのが実務的です。日常的な軽作業かつ機密度が高い範囲では、",[33,7396,4999],{}," (Zerosend など) が最もバランスの良い選択肢です。",[11,7399,4334,7400,638,7403],{},[17,7401,7402],{"href":4341},"プライバシー重視のオンラインツール (ピラー)",[17,7404,7405],{"href":4376},"ブラウザ内でファイル処理はどこまでできるか",{"title":247,"searchDepth":248,"depth":248,"links":7407},[7408,7412,7417,7418,7425,7426,7427],{"id":7059,"depth":248,"text":7060,"children":7409},[7410,7411],{"id":7063,"depth":513,"text":7064},{"id":7074,"depth":513,"text":7075},{"id":7085,"depth":248,"text":7086,"children":7413},[7414,7415,7416],{"id":7089,"depth":513,"text":7090},{"id":7116,"depth":513,"text":7117},{"id":7140,"depth":513,"text":7141},{"id":7168,"depth":248,"text":7169},{"id":7283,"depth":248,"text":7283,"children":7419},[7420,7421,7422,7423,7424],{"id":7286,"depth":513,"text":7287},{"id":7296,"depth":513,"text":7297},{"id":7306,"depth":513,"text":7307},{"id":7316,"depth":513,"text":7317},{"id":5163,"depth":513,"text":5163},{"id":7338,"depth":248,"text":7338},{"id":7367,"depth":248,"text":7368},{"id":4316,"depth":248,"text":4316},"guide","ファイルをサーバーに預けずに処理したい時、どの方式を選ぶか。アップロード型・デスクトップ型・ブラウザ内完結型の 3 類型を、業務要件・UX・対応形式の観点で比較し、用途別の選び方を解説します。",{},"\u002Fblog\u002Fprivacy-tools-comparison",{"title":7051,"description":7429},"privacy-tools-comparison","blog\u002Fprivacy-tools-comparison",[6583,7436],"比較","1u9MtR913FhIDCsCr-3EkjysE71wSOjGODw-WNT3_Yw",{"id":7439,"title":7440,"author":6,"body":7441,"category":258,"coverImage":258,"description":7509,"draft":260,"extension":261,"locale":262,"meta":7510,"navigation":264,"noindex":260,"path":7511,"publishedAt":4377,"seo":7512,"slug":7513,"stem":7514,"tags":7515,"updatedAt":4377,"__hash__":7517},"blog\u002Fblog\u002Fwelcome.md","Zerosend ブログを始めます",{"type":8,"value":7442,"toc":7503},[7443,7446,7449,7452,7455,7475,7478,7494,7496],[23,7444,7445],{"id":7445},"はじめに",[11,7447,7448],{},"Zerosend の公式ブログを開始します。このブログでは、プライバシーファーストな Web ツールを作る中で得た知見、ブラウザ内処理の技術、そしてデータを「送らない」という選択についての考察を記録していきます。",[23,7450,7451],{"id":7451},"扱うテーマ",[11,7453,7454],{},"主に次のテーマを扱います。",[27,7456,7457,7463,7469],{},[30,7458,7459,7462],{},[33,7460,7461],{},"ブラウザ内処理の技術",": WebAssembly、Web Worker、Canvas API、File System Access API の実用例",[30,7464,7465,7468],{},[33,7466,7467],{},"プライバシー設計",": CSP、アップロード不要のアーキテクチャ、Network タブで検証できる実装",[30,7470,7471,7474],{},[33,7472,7473],{},"各ツールの舞台裏",": 画像圧縮 \u002F PDF 編集 \u002F 動画変換 \u002F ファビコン生成などの内部実装",[23,7476,7477],{"id":7477},"更新頻度",[11,7479,7480,7481,7484,7485,638,7489,7493],{},"不定期ですが、ツールの追加・改善に合わせて更新します。記事の一覧は ",[17,7482,7483],{"href":7483},"\u002Fblog"," から、または ",[17,7486,7488],{"href":7487},"\u002Fblog\u002Ffeed.xml","RSS",[17,7490,7492],{"href":7491},"\u002Fblog\u002Ffeed.json","JSON Feed"," で購読できます。",[23,7495,4316],{"id":4316},[11,7497,7498,7499,7502],{},"まずはこの 1 本から。引き続き ",[17,7500,7501],{"href":5058},"Zerosend"," のツール群もよろしくお願いします。",{"title":247,"searchDepth":248,"depth":248,"links":7504},[7505,7506,7507,7508],{"id":7445,"depth":248,"text":7445},{"id":7451,"depth":248,"text":7451},{"id":7477,"depth":248,"text":7477},{"id":4316,"depth":248,"text":4316},"ブラウザ内で完結するプライバシーファーストなオンラインツールを配信する Zerosend の公式ブログを開始します。扱うテーマと更新頻度について説明します。",{},"\u002Fblog\u002Fwelcome",{"title":7440,"description":7509},"welcome","blog\u002Fwelcome",[7516],"お知らせ","FVc0WPWmjeXo6BrnFdlDampwoyA6OVHbMm-JUXveuFc",{"id":7519,"title":4338,"author":6,"body":7520,"category":258,"coverImage":258,"description":7749,"draft":260,"extension":261,"locale":262,"meta":7750,"navigation":264,"noindex":260,"path":4337,"publishedAt":4377,"seo":7751,"slug":7752,"stem":7753,"tags":7754,"updatedAt":4377,"__hash__":7756},"blog\u002Fblog\u002Fwhy-browser-only.md",{"type":8,"value":7521,"toc":7739},[7522,7526,7529,7536,7539,7542,7568,7571,7574,7577,7604,7607,7611,7614,7641,7648,7651,7654,7674,7677,7679,7685,7691,7697,7699,7705,7707,7710,7732],[23,7523,7525],{"id":7524},"なぜ送らないのか","なぜ「送らない」のか",[11,7527,7528],{},"オンラインツールの多くはファイルをサーバーに送信して処理します。利便性は高いものの、ユーザーは自分のファイルがサーバー上でどう扱われるかを自分の目で確認できません。",[11,7530,7531,7532,7535],{},"Zerosend の設計原則はシンプルです。",[33,7533,7534],{},"「送らないのが一番確実」","。ファイルを外に出さなければ、ログも、漏洩も、第三者共有も原理的に存在しません。",[23,7537,7538],{"id":7538},"アップロード型ツールのリスク",[11,7540,7541],{},"「処理後に即削除」と書かれているツールを見かけますが、これを利用者側から検証する手段はほぼありません。サービス側のサーバーに一時的にでもファイルが到達する以上、次のようなリスクが残ります。",[27,7543,7544,7550,7556,7562],{},[30,7545,7546,7549],{},[33,7547,7548],{},"ログへの記録",": アクセスログにファイル名やメタデータが残る",[30,7551,7552,7555],{},[33,7553,7554],{},"従業員によるアクセス",": 内部ポリシーによってはサポート担当者などが参照できる",[30,7557,7558,7561],{},[33,7559,7560],{},"セキュリティインシデント",": サーバーが侵害された場合、処理待ちや一時保存中のファイルが漏洩する",[30,7563,7564,7567],{},[33,7565,7566],{},"利用規約の抜け穴",": AI 学習や品質改善目的での利用を広く許可していても、ユーザーは気付きにくい",[11,7569,7570],{},"業務文書・医療情報・個人の写真など、機密性の高いファイルを扱う場面では、この問題が深刻です。",[23,7572,7573],{"id":7573},"ブラウザ内処理で何ができるか",[11,7575,7576],{},"現代のブラウザは、かつてネイティブアプリが担っていた処理の多くを実行できます。",[27,7578,7579,7582,7585,7592],{},[30,7580,7581],{},"Canvas API による画像圧縮・リサイズ・形式変換",[30,7583,7584],{},"WebAssembly + ffmpeg による動画・音声の変換",[30,7586,7587,638,7589,7591],{},[102,7588,1914],{},[102,7590,2094],{}," による PDF の結合・分割・ラスタライズ",[30,7593,7594,638,7597,638,7600,7603],{},[102,7595,7596],{},"File System Access API",[102,7598,7599],{},"Blob",[102,7601,7602],{},"URL.createObjectURL"," を介したダウンロード",[11,7605,7606],{},"これらは全てクライアントサイドで完結します。インストール不要でブラウザを開くだけで使えるため、作業環境を選びません。",[23,7608,7610],{"id":7609},"devtools-で自分の目で確認する方法","DevTools で自分の目で確認する方法",[11,7612,7613],{},"「送っていません」という主張は、ユーザーが自分で確認できなければ信用するしかありません。Zerosend はブラウザ標準の DevTools で検証できる形にしています。",[75,7615,7616,7622,7627,7633,7638],{},[30,7617,7618,7621],{},[33,7619,7620],{},"F12 キーを押す"," (Mac は Cmd+Option+I) — DevTools が開く",[30,7623,7624],{},[33,7625,7626],{},"「Network」タブを選ぶ",[30,7628,7629,7632],{},[33,7630,7631],{},"「Fetch\u002FXHR」フィルターをオンにする"," — API 通信だけを絞り込む",[30,7634,7635],{},[33,7636,7637],{},"ツールにファイルをドロップして処理する",[30,7639,7640],{},"リストに表示される通信を確認。処理中に外部へのリクエストが起きないことを目視できる",[11,7642,7643,7644,7647],{},"CDN や解析スクリプトへの最小限の通信は残りますが、",[33,7645,7646],{},"処理対象のファイル自体が HTTP リクエストのボディに乗らない","ことは目視で確認できます。",[23,7649,7650],{"id":7650},"制約もある",[11,7652,7653],{},"ブラウザ内処理は万能ではありません。",[27,7655,7656,7662,7668],{},[30,7657,7658,7661],{},[33,7659,7660],{},"ファイルサイズの上限",": メモリに載る範囲で処理する必要がある",[30,7663,7664,7667],{},[33,7665,7666],{},"初回ロードが重い",": ffmpeg.wasm は約 30MB の WASM を取得する",[30,7669,7670,7673],{},[33,7671,7672],{},"複雑な処理はサーバーが速い",": 大規模な機械学習推論はまだブラウザには重い",[11,7675,7676],{},"Zerosend は「日常的な軽作業をブラウザで完結させる」範囲に絞ることで、この制約の中で価値を出しています。",[23,7678,180],{"id":180},[11,7680,7681,7684],{},[33,7682,7683],{},"Q. ブラウザ内処理でも履歴は残りますか？","\nA. ファイルデータはサーバーに送られません。ブラウザの閲覧履歴にはアクセスしたページの URL が残りますが、どの Web サービスでも同様です。ファイルの内容はブラウザのメモリ上で処理され、ページを閉じれば消えます。",[11,7686,7687,7690],{},[33,7688,7689],{},"Q. オフラインでも使えますか？","\nA. 画像系ツールはページ読み込み後ならオフラインでも動作します。ffmpeg.wasm を使う動画・音声系ツールは初回の WASM 取得にネットワークが必要ですが、取得後はオフラインで処理できます。",[11,7692,7693,7696],{},[33,7694,7695],{},"Q. スマートフォンでも動きますか？","\nA. Safari (iOS) \u002F Chrome (Android) の最新版で動作します。大きなファイルはスマートフォンのメモリ制限に引っかかる場合があります。",[23,7698,4316],{"id":4316},[11,7700,7701,7702,7704],{},"「送らない」は、透明性と検証可能性をユーザーに返す設計です。詳しい技術背景は ",[17,7703,4342],{"href":4341}," も参照してください。",[23,7706,225],{"id":225},[11,7708,7709],{},"Zerosend では画像・動画・音声・PDF の処理をすべてブラウザ内で完結するツールを提供しています。",[27,7711,7712,7717,7722,7727],{},[30,7713,7714,7716],{},[17,7715,244],{"href":243}," — 写真や画像をサーバーに送らず軽量化",[30,7718,7719,7721],{},[17,7720,496],{"href":495}," — 会議録画や旅行動画を安全にカット",[30,7723,7724,7726],{},[17,7725,2003],{"href":2002}," — 機密文書を手元だけで結合",[30,7728,7729,7731],{},[17,7730,3009],{"href":19}," — スキャン結果もローカル処理",[11,7733,7734,7735,7738],{},"全ツール一覧は ",[17,7736,7737],{"href":5058},"トップページ"," で確認できます。",{"title":247,"searchDepth":248,"depth":248,"links":7740},[7741,7742,7743,7744,7745,7746,7747,7748],{"id":7524,"depth":248,"text":7525},{"id":7538,"depth":248,"text":7538},{"id":7573,"depth":248,"text":7573},{"id":7609,"depth":248,"text":7610},{"id":7650,"depth":248,"text":7650},{"id":180,"depth":248,"text":180},{"id":4316,"depth":248,"text":4316},{"id":225,"depth":248,"text":225},"ファイルをサーバーにアップロードしない設計を選んだ理由と、ブラウザ内処理の利点・制約を整理します。DevTools の Network タブで自ら検証できる透明性について書きました。",{},{"title":4338,"description":7749},"why-browser-only","blog\u002Fwhy-browser-only",[6583,7755],"設計","tlDh92SJcdqfwID_vZe6xWmz2EJFDwYIL0qkVDzZZvk",1777617516625]