[{"data":1,"prerenderedAt":3661},["ShallowReactive",2],{"blog-\u002Fblog\u002Fpdf-to-image-intro":3,"blog-list-ja":222},{"id":4,"title":5,"author":6,"body":7,"category":203,"coverImage":204,"description":205,"draft":206,"extension":207,"locale":208,"meta":209,"navigation":210,"noindex":206,"path":211,"publishedAt":212,"seo":213,"slug":214,"stem":215,"tags":216,"updatedAt":212,"__hash__":221},"blog\u002Fblog\u002Fpdf-to-image-intro.md","PDF を画像に変換する — \u002Ftools\u002Fpdf-to-image の思想と使い方","Zerosend Editorial",{"type":8,"value":9,"toc":191},"minimark",[10,14,22,26,34,37,40,64,68,89,92,98,129,132,135,146,152,158,169,172],[11,12,13],"p",{},"プレゼン資料の 1 ページだけスクリーンショット的に使いたい、PDF の一部を SNS 投稿したい、PDF を見れない環境向けに画像で送りたい。「PDF → 画像」の変換は地味に需要があります。",[11,15,16,21],{},[17,18,20],"a",{"href":19},"\u002Ftools\u002Fpdf-to-image","Zerosend の PDF → 画像変換ツール"," は、この作業をブラウザ内で完結させます。",[23,24,25],"h2",{"id":25},"なぜブラウザ内で変換するのか",[11,27,28,29,33],{},"PDF から画像を切り出したい場面は、社内資料・顧客提案書・設計図・契約書スナップショットなど、機密度が高いケースが多いものです。「PDF の特定ページを画像にしたいだけ」と思ってオンラインツールに上げるときも、",[30,31,32],"strong",{},"アップロードされるのは PDF の全ページ","です。",[11,35,36],{},"Zerosend は変換処理をローカルで行うため、そもそも PDF が外に出ません。",[23,38,39],{"id":39},"使い方",[41,42,43,52,55,58,61],"ol",{},[44,45,46,51],"li",{},[17,47,48],{"href":19},[49,50,19],"code",{}," を開く",[44,53,54],{},"PDF をドラッグ&ドロップ",[44,56,57],{},"出力形式 (PNG \u002F JPEG) と解像度を選ぶ",[44,59,60],{},"「変換を開始する」をクリック",[44,62,63],{},"全ページの画像が ZIP で生成される",[65,66,67],"h3",{"id":67},"解像度の目安",[69,70,71,77,83],"ul",{},[44,72,73,76],{},[30,74,75],{},"72 DPI",": ウェブ掲載・SNS 投稿用。画質より軽さ優先",[44,78,79,82],{},[30,80,81],{},"150 DPI",": 画面で読む標準品質",[44,84,85,88],{},[30,86,87],{},"300 DPI",": 印刷品質。資料の細部が重要なとき",[23,90,91],{"id":91},"仕組み",[11,93,94,97],{},[49,95,96],{},"pdfjs-dist"," を使って各ページを Canvas に描画し、Canvas から画像として書き出しています。",[69,99,100,103,109,120,126],{},[44,101,102],{},"PDF を ArrayBuffer として読み込み",[44,104,105,108],{},[49,106,107],{},"getDocument()"," で解析",[44,110,111,112,115,116,119],{},"ページごとに ",[49,113,114],{},"getPage(n)"," → ",[49,117,118],{},"render(ctx, viewport)"," で Canvas に描画",[44,121,122,125],{},[49,123,124],{},"canvas.toBlob()"," で PNG \u002F JPEG 化",[44,127,128],{},"全ページを ZIP にまとめてダウンロード",[11,130,131],{},"ブラウザの描画エンジンをそのまま使うため、フォント埋め込み・ベクタ図・透過要素も正確に再現されます。",[23,133,134],{"id":134},"よくある質問",[11,136,137,140,141,145],{},[30,138,139],{},"Q. 特定のページだけ変換できますか？","\nA. 現状は全ページが対象です。特定ページだけなら ",[17,142,144],{"href":143},"\u002Ftools\u002Fpdf-split","PDF 分割"," で該当ページだけ抽出してから変換するのが確実です。",[11,147,148,151],{},[30,149,150],{},"Q. 透過背景の PDF を変換するとどうなる？","\nA. PNG を選べば透過が保持されます。JPEG は透過非対応のため白背景になります。",[11,153,154,157],{},[30,155,156],{},"Q. 画像の品質をもっと上げたい","\nA. 解像度を 300 DPI にすると大きく改善します。ただしファイルサイズとメモリ消費も大きくなります。",[11,159,160,163,164,168],{},[30,161,162],{},"Q. 全ページを 1 枚にまとめたい","\nA. 本ツールは 1 ページ 1 ファイルです。まとめたい場合はダウンロード後 ",[17,165,167],{"href":166},"\u002Ftools\u002Fimage-merge","画像結合"," で結合してください。",[23,170,171],{"id":171},"関連ツール",[69,173,174,179,186],{},[44,175,176,178],{},[17,177,144],{"href":143}," — ページ単位の抽出",[44,180,181,185],{},[17,182,184],{"href":183},"\u002Ftools\u002Fimage-compress","画像圧縮"," — 変換後の画像を軽くする",[44,187,188,190],{},[17,189,167],{"href":166}," — 変換した画像を 1 枚にまとめる",{"title":192,"searchDepth":193,"depth":193,"links":194},"",2,[195,196,200,201,202],{"id":25,"depth":193,"text":25},{"id":39,"depth":193,"text":39,"children":197},[198],{"id":67,"depth":199,"text":67},3,{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"tech",null,"Zerosend の PDF → 画像変換ツールは、PDF の各ページをサーバーに送らずブラウザ内で PNG \u002F JPEG に書き出します。資料の一部だけ共有したいときに便利。Zerosend 編集部が解説。",false,"md","ja",{},true,"\u002Fblog\u002Fpdf-to-image-intro","2026-04-20",{"title":5,"description":205},"pdf-to-image-intro","blog\u002Fpdf-to-image-intro",[217,218,219,220],"PDF","画像","変換","ツール","Jq_DAUEoYgotOWAA8KjTcYylG7P9YgTbzLMPbniCMdc",[223,431,609,755,931,1097,1268,1454,1618,1763,1930,2098,2227,2392,2576,2818,2982,3158,3299,3445,3526],{"id":224,"title":225,"author":6,"body":226,"category":203,"coverImage":204,"description":422,"draft":206,"extension":207,"locale":208,"meta":423,"navigation":210,"noindex":206,"path":424,"publishedAt":212,"seo":425,"slug":426,"stem":427,"tags":428,"updatedAt":212,"__hash__":430},"blog\u002Fblog\u002Faudio-convert-intro.md","音声形式を変換する — \u002Ftools\u002Faudio-convert の思想と使い方",{"type":8,"value":227,"toc":412},[228,231,237,239,246,249,251,270,273,299,302,328,330,333,358,361,363,369,375,381,387,389],[11,229,230],{},"取材の録音を MP3 に揃えたい、古い WAV ファイルを容量節約のため M4A に変えたい、ポッドキャスト配信用の形式に統一したい。音声ファイルの形式変換は、取材者・編集者・音楽制作者が日常的に行う作業です。",[11,232,233,21],{},[17,234,236],{"href":235},"\u002Ftools\u002Faudio-convert","Zerosend の音声形式変換ツール",[23,238,25],{"id":25},[11,240,241,242,245],{},"録音された音声は、",[30,243,244],{},"発話の中身そのもの","を情報として持ちます。インタビュー対象者の声、打ち合わせでの発言、取材源の証言。これらを無料のオンライン変換サービスに預けることは、発話内容そのものを第三者のサーバーに預けることに等しいものです。",[11,247,248],{},"Zerosend は変換処理をローカルで行うため、音声ファイルが一切外に出ません。取材ソースの保護や NDA 下の音源加工でも安全に使えます。",[23,250,39],{"id":39},[41,252,253,259,262,265,267],{},[44,254,255,51],{},[17,256,257],{"href":235},[49,258,235],{},[44,260,261],{},"音声ファイルをドラッグ&ドロップ (複数可)",[44,263,264],{},"出力形式 (MP3 \u002F WAV \u002F M4A \u002F OGG) とビットレートを選択",[44,266,60],{},[44,268,269],{},"結果を ZIP でダウンロード",[23,271,272],{"id":272},"形式の選び方",[69,274,275,281,287,293],{},[44,276,277,280],{},[30,278,279],{},"MP3",": 最も汎用。ポッドキャスト・配信・共有の標準",[44,282,283,286],{},[30,284,285],{},"WAV",": 可逆 (ロスレス)。編集中のマスター音源・音楽制作用",[44,288,289,292],{},[30,290,291],{},"M4A (AAC)",": MP3 より圧縮効率が良い。iOS 環境で標準",[44,294,295,298],{},[30,296,297],{},"OGG (Vorbis)",": オープン形式。ゲーム・一部ブラウザで効率重視",[65,300,301],{"id":301},"ビットレートの目安",[69,303,304,310,316,322],{},[44,305,306,309],{},[30,307,308],{},"320 kbps",": 音質最優先 (MP3 の実用上限)",[44,311,312,315],{},[30,313,314],{},"192 kbps",": 標準品質。一般向け音声の定番",[44,317,318,321],{},[30,319,320],{},"128 kbps",": 容量優先。音声解説・ポッドキャスト",[44,323,324,327],{},[30,325,326],{},"96 kbps 以下",": 会話のみの録音など、音質より軽さ",[23,329,91],{"id":91},[11,331,332],{},"ffmpeg.wasm を使って再エンコードしています。",[69,334,335,338,352,355],{},[44,336,337],{},"入力音声を ffmpeg FS に書き込み",[44,339,340,341,344,345,344,348,351],{},"出力形式に応じたエンコーダ (",[49,342,343],{},"libmp3lame",", ",[49,346,347],{},"aac",[49,349,350],{},"libvorbis"," など) を指定",[44,353,354],{},"ビットレート・チャンネル数・サンプリングレートを設定",[44,356,357],{},"出力 Blob を生成してダウンロード",[11,359,360],{},"メタデータ (タイトル・アーティスト) は極力引き継ぎます。",[23,362,134],{"id":134},[11,364,365,368],{},[30,366,367],{},"Q. 可逆 → 非可逆 (WAV → MP3) と 非可逆 → 非可逆 (MP3 → M4A) の違いは？","\nA. 非可逆 → 非可逆は二重に圧縮されるため音質がさらに劣化します。可能な限りマスター音源 (WAV) から目的形式に直接変換するのがお勧めです。",[11,370,371,374],{},[30,372,373],{},"Q. 複数ファイルのバッチ変換は？","\nA. 対応しています。10〜20 ファイル程度を 1 バッチで処理するのが現実的です。",[11,376,377,380],{},[30,378,379],{},"Q. 動画から音声だけ抜き出したい","\nA. 動画ファイルを入力すれば音声トラックを抽出して指定形式で書き出します。",[11,382,383,386],{},[30,384,385],{},"Q. ビットレートを自由に指定できる？","\nA. プリセットから選ぶ方式です。細かい制御が必要なら別途専門ツールをご検討ください。",[23,388,171],{"id":171},[69,390,391,398,405],{},[44,392,393,397],{},[17,394,396],{"href":395},"\u002Ftools\u002Faudio-trim","音声トリミング"," — 変換前後の区間切り出し",[44,399,400,404],{},[17,401,403],{"href":402},"\u002Ftools\u002Fvideo-convert","動画形式変換"," — 動画側の形式変換",[44,406,407,411],{},[17,408,410],{"href":409},"\u002Ftools\u002Fvideo-trim","動画トリミング"," — 音声抽出前の動画整形",{"title":192,"searchDepth":193,"depth":193,"links":413},[414,415,416,419,420,421],{"id":25,"depth":193,"text":25},{"id":39,"depth":193,"text":39},{"id":272,"depth":193,"text":272,"children":417},[418],{"id":301,"depth":199,"text":301},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の音声形式変換ツールは、MP3 \u002F WAV \u002F M4A \u002F FLAC \u002F OGG などをサーバーに送らずブラウザ内で相互変換します。録音インタビューや音源ファイルの形式統一に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Faudio-convert-intro",{"title":225,"description":422},"audio-convert-intro","blog\u002Faudio-convert-intro",[429,219,220],"音声","kgzSn9tpEqJdQkfZCQKjEEBSxKOoB_cm7dQc9t69f6s",{"id":432,"title":433,"author":6,"body":434,"category":203,"coverImage":204,"description":600,"draft":206,"extension":207,"locale":208,"meta":601,"navigation":210,"noindex":206,"path":602,"publishedAt":212,"seo":603,"slug":604,"stem":605,"tags":606,"updatedAt":212,"__hash__":608},"blog\u002Fblog\u002Faudio-trim-intro.md","音声をトリミング (切り出し) する — \u002Ftools\u002Faudio-trim の思想と使い方",{"type":8,"value":435,"toc":592},[436,439,444,447,450,457,459,479,481,492,505,512,515,541,543,549,555,561,573,575],[11,437,438],{},"60 分のインタビューから引用したい 30 秒を抜き出したい、会議録音の不要な冒頭\u002F末尾をカットしたい、ポッドキャスト素材のつなぎ目を整えたい。音声のトリミングは、録音後の編集で最初に行う作業です。",[11,440,441,21],{},[17,442,443],{"href":395},"Zerosend の音声トリミングツール",[23,445,446],{"id":446},"なぜブラウザ内でトリミングするのか",[11,448,449],{},"音声ファイルには発話内容そのものが記録されています。インタビュー、取材、商談、カウンセリング、医療相談。どれも機密性が高く、少なくとも当事者以外に聞かれることを想定していない音声です。",[11,451,452,453,456],{},"「一部だけ切り出したい」という作業でも、オンラインツールに預けると",[30,454,455],{},"入力した音声全体","が相手に渡ります。Zerosend はトリミング処理をローカルで行うため、アップロードそのものが発生せず、音源全体の機密が守られます。",[23,458,39],{"id":39},[41,460,461,467,470,473,476],{},[44,462,463,51],{},[17,464,465],{"href":395},[49,466,395],{},[44,468,469],{},"音声ファイルをドラッグ&ドロップ",[44,471,472],{},"開始時刻・終了時刻を指定",[44,474,475],{},"「トリミングを開始する」をクリック",[44,477,478],{},"切り出された音声をダウンロード",[23,480,91],{"id":91},[11,482,483,484,487,488,491],{},"ffmpeg.wasm の ",[49,485,486],{},"-ss"," \u002F ",[49,489,490],{},"-to"," オプションで指定区間を抽出します。",[69,493,494,496,502],{},[44,495,337],{},[44,497,498,501],{},[49,499,500],{},"-ss \u003Cstart> -i input -to \u003Cend> -c copy output"," でロスレス抽出",[44,503,504],{},"再エンコードなしで切り出すため処理が速く音質劣化もない",[11,506,507,508,511],{},"入力がどの形式であっても、基本的には同じ形式で書き出されます。形式を変えたいときは ",[17,509,510],{"href":235},"音声形式変換"," と組み合わせてください。",[23,513,514],{"id":514},"使いどころ",[69,516,517,523,529,535],{},[44,518,519,522],{},[30,520,521],{},"インタビューの引用",": 60 分音源から 30 秒の引用箇所を切り出す",[44,524,525,528],{},[30,526,527],{},"不要区間の除去",": 録音冒頭の環境音や末尾の雑音をカット",[44,530,531,534],{},[30,532,533],{},"ポッドキャスト編集",": 冗長な「えー」「あのー」を含む区間を削除 (1 区間ずつ)",[44,536,537,540],{},[30,538,539],{},"会議議事録の根拠音声",": 要旨に関連する数分の根拠区間を抜き出す",[23,542,134],{"id":134},[11,544,545,548],{},[30,546,547],{},"Q. 複数区間を切り出して連結できる？","\nA. 現状は 1 区間のみです。複数区間を抽出したい場合は 1 つずつ切り出してから別途連結してください。",[11,550,551,554],{},[30,552,553],{},"Q. 音質は落ちますか？","\nA. 再エンコードしないため、元音質がそのまま保持されます。",[11,556,557,560],{},[30,558,559],{},"Q. フェードイン\u002Fフェードアウトを追加できますか？","\nA. 現状は非対応です。必要なら切り出した音声を別の編集ツールで処理してください。",[11,562,563,566,567,569,570,572],{},[30,564,565],{},"Q. 動画ファイルから音声部分だけ切り出したい","\nA. 動画ファイルを入力して ",[17,568,510],{"href":235}," を使うと、動画の音声トラックを指定形式で抽出できます。トリミングしたい区間があるなら、まず ",[17,571,410],{"href":409}," で区間抽出 → 音声形式変換、の順がお勧めです。",[23,574,171],{"id":171},[69,576,577,582,587],{},[44,578,579,581],{},[17,580,510],{"href":235}," — トリミング後に形式を変えたいとき",[44,583,584,586],{},[17,585,410],{"href":409}," — 映像付きの区間抽出",[44,588,589,591],{},[17,590,403],{"href":402}," — 動画側の処理",{"title":192,"searchDepth":193,"depth":193,"links":593},[594,595,596,597,598,599],{"id":446,"depth":193,"text":446},{"id":39,"depth":193,"text":39},{"id":91,"depth":193,"text":91},{"id":514,"depth":193,"text":514},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の音声トリミングツールは、音声ファイルをサーバーに送らずブラウザ内で任意の区間だけ切り出します。長尺インタビュー・会議録音・ポッドキャスト素材の整形に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Faudio-trim-intro",{"title":433,"description":600},"audio-trim-intro","blog\u002Faudio-trim-intro",[429,607,220],"トリミング","hFWCw0D3du7ZQd9d2boBEpRhRBLppxa1qHPrZvJ6vsM",{"id":610,"title":611,"author":6,"body":612,"category":203,"coverImage":204,"description":745,"draft":206,"extension":207,"locale":208,"meta":746,"navigation":210,"noindex":206,"path":747,"publishedAt":212,"seo":748,"slug":749,"stem":750,"tags":751,"updatedAt":212,"__hash__":754},"blog\u002Fblog\u002Fheic-to-jpg-intro.md","HEIC を JPG に変換する — \u002Ftools\u002Fheic-to-jpg の思想と使い方",{"type":8,"value":613,"toc":738},[614,617,624,628,631,634,636,654,656,666,686,689,691,697,703,709,715,717],[11,615,616],{},"iPhone で撮影した写真を PC や同僚に送ったら「開けません」と言われた経験はありませんか。iPhone の標準形式 HEIC (High Efficiency Image Container) は、Apple エコシステム外では互換性が限定的です。Windows 10 以降はアドオンが必要、画像編集ソフトも対応が遅れがちです。",[11,618,619,623],{},[17,620,622],{"href":621},"\u002Ftools\u002Fheic-to-jpg","Zerosend の HEIC → JPG 変換ツール"," は、この問題をブラウザ内で解決します。",[23,625,627],{"id":626},"なぜブラウザ内で-heic-を変換するのか","なぜブラウザ内で HEIC を変換するのか",[11,629,630],{},"iPhone で撮った写真は、個人・家族・仕事の私的情景を含みがちです。顔、家の中、位置情報、撮影日時。これらを無料のオンライン変換サービスにアップロードすることは、事実上それらの情報を第三者に預けることを意味します。",[11,632,633],{},"Zerosend は、HEIC のデコードから JPG の書き出しまで、すべてブラウザ内で行います。写真自体が外に出ないため、NDA 下の撮影素材や家族の写真でも安心して使えます。",[23,635,39],{"id":39},[41,637,638,644,647,650,652],{},[44,639,640,51],{},[17,641,642],{"href":621},[49,643,621],{},[44,645,646],{},"HEIC \u002F HEIF 形式の画像をドラッグ&ドロップ (複数可)",[44,648,649],{},"品質 (JPG の圧縮率) を選択",[44,651,60],{},[44,653,269],{},[23,655,91],{"id":91},[11,657,658,659,662,663,665],{},"HEIC のデコードはブラウザ標準ではまだ実装されていないため、",[49,660,661],{},"heic2any"," ライブラリを読み込んで使っています。",[49,664,661],{}," は libheif を WebAssembly 化したもので、ブラウザ内で HEIC を Blob として展開できます。",[69,667,668,671,676,679],{},[44,669,670],{},"HEIC ファイルを ArrayBuffer として読み込み",[44,672,673,675],{},[49,674,661],{}," で JPEG Blob に変換 (libheif の WASM が実行される)",[44,677,678],{},"必要なら Canvas 経由で品質を再指定",[44,680,681,682,685],{},"元のファイル名を保持したまま ",[49,683,684],{},".jpg"," 拡張子で書き出し",[11,687,688],{},"初回のみ libheif の WASM (約 2MB) をダウンロードするため少し待ち時間がありますが、2 回目以降はキャッシュから即時起動します。",[23,690,134],{"id":134},[11,692,693,696],{},[30,694,695],{},"Q. HEIC と HEIF の違いは？","\nA. HEIF がコンテナフォーマットの総称で、HEIC はその中で HEVC (H.265) でエンコードされた静止画を指します。本ツールは両方対応しています。",[11,698,699,702],{},[30,700,701],{},"Q. Live Photo はどうなりますか？","\nA. 静止画部分のみが JPG として書き出されます。動画部分は含まれません。動画も抽出したい場合は別途 iPhone 側で「書き出す > 現状のまま」を使ってください。",[11,704,705,708],{},[30,706,707],{},"Q. EXIF (撮影日時・位置情報) は引き継がれますか？","\nA. 一部情報は失われます。位置情報のプライバシー観点ではむしろ利点です。",[11,710,711,714],{},[30,712,713],{},"Q. 複数ファイルまとめて変換できますか？","\nA. はい。ZIP で一括ダウンロードできます。数十枚程度までは快適に処理できます。",[23,716,171],{"id":171},[69,718,719,724,731],{},[44,720,721,723],{},[17,722,184],{"href":183}," — JPG 変換後にさらに軽くしたいとき",[44,725,726,730],{},[17,727,729],{"href":728},"\u002Ftools\u002Fimage-resize","画像リサイズ"," — 送信前に寸法も揃える",[44,732,733,737],{},[17,734,736],{"href":735},"\u002Ftools\u002Fimage-convert","画像形式変換"," — JPG \u002F PNG \u002F WebP の相互変換",{"title":192,"searchDepth":193,"depth":193,"links":739},[740,741,742,743,744],{"id":626,"depth":193,"text":627},{"id":39,"depth":193,"text":39},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"iPhone で撮った HEIC 画像を Windows \u002F Android や古いシステムで開けるよう JPG に変換するツール。サーバーに送らずブラウザ内で変換する仕組みと注意点を Zerosend 編集部が解説。",{},"\u002Fblog\u002Fheic-to-jpg-intro",{"title":611,"description":745},"heic-to-jpg-intro","blog\u002Fheic-to-jpg-intro",[752,218,753,220],"HEIC","iPhone","0cpdD3jngClgWGSDf6EYR2UtF-Zz0rDNW4WhdyYyONM",{"id":756,"title":757,"author":6,"body":758,"category":203,"coverImage":204,"description":923,"draft":206,"extension":207,"locale":208,"meta":924,"navigation":210,"noindex":206,"path":925,"publishedAt":212,"seo":926,"slug":927,"stem":928,"tags":929,"updatedAt":212,"__hash__":930},"blog\u002Fblog\u002Fimage-convert-intro.md","画像形式変換をブラウザ内で — \u002Ftools\u002Fimage-convert の思想と使い方",{"type":8,"value":759,"toc":915},[760,763,769,772,779,782,784,803,805,831,838,840,847,869,876,878,884,890,896,898],[11,761,762],{},"「PNG で貰ったロゴを JPEG にしたい」「iPhone で撮った HEIC を JPG で送りたい」「サイト表示を速くするために WebP に揃えたい」。画像の形式変換は地味ですが発生頻度の高い作業です。",[11,764,765,768],{},[17,766,767],{"href":735},"Zerosend の画像形式変換ツール"," は、この日常作業をブラウザ内で完結させます。一度も外に出さずに、あなたの端末だけで別形式に書き出します。",[23,770,771],{"id":771},"なぜブラウザ内で形式変換するのか",[11,773,774,775,778],{},"画像変換サービスの多くは、アップロード → サーバーで変換 → ダウンロード という流れです。社員写真、契約書のスキャン、製品デザイン案。",[30,776,777],{},"中身を見られたくない画像ほど、オンライン変換ツールに投げづらい","のが現実です。",[11,780,781],{},"Zerosend は、変換処理そのものがブラウザ内で完結するため、機密性の高い素材でもそのまま使えます。DevTools の Network タブを開いたまま変換しても、画像本体がアップロードされていないことを自分で確認できます。",[23,783,39],{"id":39},[41,785,786,792,795,798,800],{},[44,787,788,51],{},[17,789,790],{"href":735},[49,791,735],{},[44,793,794],{},"画像をドラッグ&ドロップ (複数可)",[44,796,797],{},"出力形式 (JPEG \u002F PNG \u002F WebP) と品質を選択",[44,799,60],{},[44,801,802],{},"結果を ZIP でまとめてダウンロード",[23,804,272],{"id":272},[69,806,807,813,819,825],{},[44,808,809,812],{},[30,810,811],{},"JPEG",": 写真・背景画像。透過不要。古いブラウザ\u002Fアプリ互換性が最重要なら",[44,814,815,818],{},[30,816,817],{},"PNG",": ロゴ・UI パーツ・透過必要なグラフィック。可逆圧縮",[44,820,821,824],{},[30,822,823],{},"WebP",": 汎用。JPEG より 25〜35% 小さくなり、透過も扱える。モダン用途の標準",[44,826,827,830],{},[30,828,829],{},"AVIF",": 更に小さいが生成コストが高く、ブラウザ対応がまだ揃いきらない",[11,832,833,834,837],{},"ブログや EC で表示速度を気にするなら ",[30,835,836],{},"WebP 一択","と言って差し支えありません。",[23,839,91],{"id":91},[11,841,842,843,846],{},"Canvas API の ",[49,844,845],{},"canvas.toBlob(callback, 'image\u002Fwebp', quality)"," を使って変換しています。ブラウザ標準のエンコーダなので、外部ライブラリ依存もありません。",[69,848,849,856,863],{},[44,850,851,852,855],{},"入力画像を ",[49,853,854],{},"\u003Cimg>"," として読み込み",[44,857,858,859,862],{},"同寸の ",[49,860,861],{},"\u003Ccanvas>"," に描画",[44,864,865,868],{},[49,866,867],{},"toBlob"," で出力形式と品質を指定して書き出し",[11,870,871,872,875],{},"HEIC 入力のみ別ツール (",[17,873,874],{"href":621},"HEIC → JPG",") に振り分けています。これは HEIC デコーダがブラウザ標準にまだ入っていないため、別ライブラリを読み込む必要があるためです。",[23,877,134],{"id":134},[11,879,880,883],{},[30,881,882],{},"Q. 透過 PNG を JPEG にしたらどうなる？","\nA. 透過部分は白で塗られます。意図しない結果になりやすいので注意してください。",[11,885,886,889],{},[30,887,888],{},"Q. 元のメタデータ (EXIF) は引き継がれる？","\nA. 落ちます。位置情報漏れの予防としてはむしろ利点です。",[11,891,892,895],{},[30,893,894],{},"Q. バッチ処理の上限は？","\nA. 端末のメモリ次第ですが、実用上は 100 枚前後までを推奨します。",[23,897,171],{"id":171},[69,899,900,905,910],{},[44,901,902,904],{},[17,903,184],{"href":183}," — 品質指定で再エンコードしてサイズ削減",[44,906,907,909],{},[17,908,729],{"href":728}," — 形式変換と同時に寸法も揃えたいときは先にこちら",[44,911,912,914],{},[17,913,874],{"href":621}," — iPhone 写真専用の変換",{"title":192,"searchDepth":193,"depth":193,"links":916},[917,918,919,920,921,922],{"id":771,"depth":193,"text":771},{"id":39,"depth":193,"text":39},{"id":272,"depth":193,"text":272},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の画像形式変換ツールは、JPEG \u002F PNG \u002F WebP \u002F AVIF をサーバーに送らず相互変換します。用途別の形式選び、透過・圧縮率の違いを Zerosend 編集部が整理します。",{},"\u002Fblog\u002Fimage-convert-intro",{"title":757,"description":923},"image-convert-intro","blog\u002Fimage-convert-intro",[218,219,823,220],"MAlk3sjsYuu6xgnHtqBBQOwIM5KbQiMdHPIStC5QIcU",{"id":932,"title":933,"author":6,"body":934,"category":203,"coverImage":204,"description":1088,"draft":206,"extension":207,"locale":208,"meta":1089,"navigation":210,"noindex":206,"path":1090,"publishedAt":212,"seo":1091,"slug":1092,"stem":1093,"tags":1094,"updatedAt":212,"__hash__":1096},"blog\u002Fblog\u002Fimage-edit-intro.md","画像の切り抜き・回転・反転をブラウザ内で — \u002Ftools\u002Fimage-edit の思想と使い方",{"type":8,"value":935,"toc":1081},[936,939,946,949,952,959,962,964,1001,1003,1039,1042,1044,1050,1056,1062,1064],[11,937,938],{},"SNS アイコンの正方形切り出し、履歴書の証明写真の比率合わせ、商品画像の回転、スキャン画像の左右反転。画像の「切り抜き・回転・反転」は、Photoshop を開くほどでもないのに地味に面倒な作業です。",[11,940,941,945],{},[17,942,944],{"href":943},"\u002Ftools\u002Fimage-edit","Zerosend の画像編集ツール"," は、この 3 操作を 1 画面に集約してブラウザ内で完結させます。",[23,947,948],{"id":948},"なぜブラウザ内で編集するのか",[11,950,951],{},"トリミングは個人情報と密接です。証明写真を切り出すなら顔、名刺をスキャンするなら氏名・連絡先、社内資料の一部を切り出すなら機密情報が含まれます。",[11,953,954,955,958],{},"これらを「画像を切り抜くだけ」のオンラインツールにアップロードしてしまうと、切り抜き前の原版が相手のサーバーに残る可能性があります。オンラインツールはビジネスモデル上、アップロード済みのファイルをログ・解析・AI 学習に回しても契約上問題にならないケースが多く、",[30,956,957],{},"利用者側からはその境界が見えません","。",[11,960,961],{},"Zerosend は編集処理そのものをローカルで行うことで、この不透明性を取り除きます。",[23,963,39],{"id":39},[41,965,966,972,975,998],{},[44,967,968,51],{},[17,969,970],{"href":943},[49,971,943],{},[44,973,974],{},"画像をドラッグ&ドロップ",[44,976,977,978],{},"3 つの操作から選ぶ:\n",[69,979,980,986,992],{},[44,981,982,985],{},[30,983,984],{},"切り抜き",": 矩形を選択範囲として指定",[44,987,988,991],{},[30,989,990],{},"回転",": 90° \u002F 180° \u002F 270° の 3 ステップ",[44,993,994,997],{},[30,995,996],{},"反転",": 水平 \u002F 垂直",[44,999,1000],{},"プレビューで結果を確認してダウンロード",[23,1002,91],{"id":91},[69,1004,1005,1017,1026],{},[44,1006,1007,1009,1010,1012,1013,1016],{},[30,1008,984],{},": 選択した矩形の寸法の ",[49,1011,861],{}," を作り、",[49,1014,1015],{},"drawImage"," で元画像の該当領域を切り出し",[44,1018,1019,1021,1022,1025],{},[30,1020,990],{},": 回転行列を ",[49,1023,1024],{},"ctx.transform"," で適用してから描画",[44,1027,1028,1030,1031,1034,1035,1038],{},[30,1029,996],{},": ",[49,1032,1033],{},"ctx.scale(-1, 1)"," で水平、",[49,1036,1037],{},"ctx.scale(1, -1)"," で垂直",[11,1040,1041],{},"いずれも Canvas API の基本操作の組み合わせで、追加ライブラリは使っていません。処理は数十ミリ秒で完了します。",[23,1043,134],{"id":134},[11,1045,1046,1049],{},[30,1047,1048],{},"Q. 比率指定 (1:1, 4:3, 16:9) で切り抜けますか？","\nA. はい。プリセットボタンで一発切り替えできます。SNS アイコンは 1:1、YouTube サムネは 16:9 など。",[11,1051,1052,1055],{},[30,1053,1054],{},"Q. 複数画像をまとめて同じ比率で切り抜けますか？","\nA. 現状は 1 枚ずつです。バッチ処理は要望を見ながら検討します。",[11,1057,1058,1061],{},[30,1059,1060],{},"Q. 編集後に再度編集したい場合は？","\nA. ダウンロードしたファイルを再度ドロップすれば、何度でも編集できます。",[23,1063,171],{"id":171},[69,1065,1066,1071,1076],{},[44,1067,1068,1070],{},[17,1069,729],{"href":728}," — 切り抜き後に寸法を揃えたいとき",[44,1072,1073,1075],{},[17,1074,184],{"href":183}," — 編集後の軽量化",[44,1077,1078,1080],{},[17,1079,167],{"href":166}," — 複数画像を 1 枚にまとめたいとき",{"title":192,"searchDepth":193,"depth":193,"links":1082},[1083,1084,1085,1086,1087],{"id":948,"depth":193,"text":948},{"id":39,"depth":193,"text":39},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の画像編集ツールは、切り抜き・回転・反転をサーバーに送らず端末内で処理します。証明写真・SNS アイコン・商品画像のトリミングで使える基本操作を Zerosend 編集部が解説。",{},"\u002Fblog\u002Fimage-edit-intro",{"title":933,"description":1088},"image-edit-intro","blog\u002Fimage-edit-intro",[218,1095,220],"編集","h6iWKKMINFrYbTea9JQU_0-L2ODwN_Y0BCWM2BAGAdE",{"id":1098,"title":1099,"author":6,"body":1100,"category":203,"coverImage":204,"description":1259,"draft":206,"extension":207,"locale":208,"meta":1260,"navigation":210,"noindex":206,"path":1261,"publishedAt":212,"seo":1262,"slug":1263,"stem":1264,"tags":1265,"updatedAt":212,"__hash__":1267},"blog\u002Fblog\u002Fimage-merge-intro.md","複数画像を 1 枚にまとめる — \u002Ftools\u002Fimage-merge の思想と使い方",{"type":8,"value":1101,"toc":1251},[1102,1105,1111,1114,1121,1124,1126,1149,1151,1176,1179,1181,1207,1209,1218,1224,1230,1232],[11,1103,1104],{},"スマホのスクリーンショットを複数枚まとめて 1 枚の縦長画像にしたい。商品のビフォーアフター画像を 1 枚で見せたい。SNS に 4 コマ風に並べて投稿したい。",[11,1106,1107,1110],{},[17,1108,1109],{"href":166},"Zerosend の画像結合ツール"," は、こうした「複数画像を 1 枚にまとめる」需要をブラウザ内で完結させます。",[23,1112,1113],{"id":1113},"なぜブラウザ内で結合するのか",[11,1115,1116,1117,1120],{},"結合対象の画像には、アプリの画面キャプチャ、社内ドキュメントのスクショ、顧客の LINE 履歴など機密性の高いものが混ざりがちです。",[30,1118,1119],{},"結合対象を全部まとめてサーバーに上げる","ということは、それだけの量の機密情報を一度に外に出すことと同じです。",[11,1122,1123],{},"Zerosend は結合処理そのものがローカルで動くため、何枚投入しても 1 枚のファイルも外に出ません。",[23,1125,39],{"id":39},[41,1127,1128,1134,1137,1140,1143,1146],{},[44,1129,1130,51],{},[17,1131,1132],{"href":166},[49,1133,166],{},[44,1135,1136],{},"画像を複数枚ドラッグ&ドロップ",[44,1138,1139],{},"結合方向を選ぶ (縦に連結 \u002F 横に連結 \u002F グリッド)",[44,1141,1142],{},"順序が違う場合はドラッグで並べ替え",[44,1144,1145],{},"「結合を開始する」をクリック",[44,1147,1148],{},"1 枚の画像としてダウンロード",[23,1150,91],{"id":91},[69,1152,1153,1156,1162,1168,1171],{},[44,1154,1155],{},"各入力画像の寸法を計測",[44,1157,1158,1159,1161],{},"結合後の ",[49,1160,861],{}," サイズを計算 (縦連結なら幅は最大・高さは合計)",[44,1163,1164,1165,1167],{},"画像を順に ",[49,1166,1015],{}," で配置",[44,1169,1170],{},"幅\u002F高さが揃わない場合は縦横比を保って自動センタリング",[44,1172,1173,1175],{},[49,1174,124],{}," で PNG \u002F JPEG として書き出し",[11,1177,1178],{},"全処理は Canvas API の組み合わせで完結します。100 枚程度の結合までは現実的です。",[23,1180,514],{"id":514},[69,1182,1183,1189,1195,1201],{},[44,1184,1185,1188],{},[30,1186,1187],{},"スクショ集約",": アプリのフロー解説で、複数画面を 1 枚にまとめて Slack に貼る",[44,1190,1191,1194],{},[30,1192,1193],{},"比較画像",": ビフォー\u002Fアフターを横並びで 1 枚に",[44,1196,1197,1200],{},[30,1198,1199],{},"SNS 投稿",": Instagram の 1 枚投稿でも複数カットを見せる",[44,1202,1203,1206],{},[30,1204,1205],{},"申請書類",": 表紙と本文を 1 画像にまとめて提出",[23,1208,134],{"id":134},[11,1210,1211,1214,1215,1217],{},[30,1212,1213],{},"Q. 画像サイズが違うものを結合するとどうなる？","\nA. 縦連結では幅を最大に合わせ、余白部分は透明 (PNG) または白 (JPEG) になります。事前に ",[17,1216,729],{"href":728}," で揃えておくときれいに仕上がります。",[11,1219,1220,1223],{},[30,1221,1222],{},"Q. 間に余白を入れられる？","\nA. はい。境界の色と幅を指定できます。",[11,1225,1226,1229],{},[30,1227,1228],{},"Q. グリッドの行数・列数は指定できる？","\nA. はい。例えば 4 枚を 2×2 のグリッドに配置できます。",[23,1231,171],{"id":171},[69,1233,1234,1239,1244],{},[44,1235,1236,1238],{},[17,1237,729],{"href":728}," — 結合前にサイズを揃える",[44,1240,1241,1243],{},[17,1242,184],{"href":183}," — 結合後の巨大ファイルを軽くする",[44,1245,1246,1250],{},[17,1247,1249],{"href":1248},"\u002Ftools\u002Fimage-to-pdf","画像 → PDF"," — 結合の代わりに PDF 1 枚にまとめる選択肢も",{"title":192,"searchDepth":193,"depth":193,"links":1252},[1253,1254,1255,1256,1257,1258],{"id":1113,"depth":193,"text":1113},{"id":39,"depth":193,"text":39},{"id":91,"depth":193,"text":91},{"id":514,"depth":193,"text":514},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の画像結合ツールは、複数の画像をサーバーに送らずブラウザ内で縦\u002F横に連結します。比較画像・ビフォーアフター・スマホのスクリーンショット集約に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fimage-merge-intro",{"title":1099,"description":1259},"image-merge-intro","blog\u002Fimage-merge-intro",[218,1266,220],"結合","PLfuzw4Y8oCuQtuvMqC3PyVOdK3FVJAmKrbBGTfyyc8",{"id":1269,"title":1270,"author":6,"body":1271,"category":203,"coverImage":204,"description":1445,"draft":206,"extension":207,"locale":208,"meta":1446,"navigation":210,"noindex":206,"path":1447,"publishedAt":212,"seo":1448,"slug":1449,"stem":1450,"tags":1451,"updatedAt":212,"__hash__":1453},"blog\u002Fblog\u002Fimage-resize-intro.md","画像リサイズをブラウザ内で — \u002Ftools\u002Fimage-resize の思想と使い方",{"type":8,"value":1272,"toc":1436},[1273,1276,1282,1285,1291,1298,1300,1319,1322,1360,1362,1368,1393,1396,1398,1404,1410,1416,1418],[11,1274,1275],{},"SNS に投稿したい、社内 Wiki に貼りたい、ECサイトの商品画像に使いたい。用途ごとに必要な画像サイズは違います。スマホで撮った 4000×3000 ピクセルの写真をそのままアップすると、受け側サーバーで勝手に縮小されたり、表示が重くなったりします。",[11,1277,1278,1281],{},[17,1279,1280],{"href":728},"Zerosend の画像リサイズツール"," は、この「用途に合う寸法に先に揃えておきたい」需要をブラウザ内で完結させます。",[23,1283,1284],{"id":1284},"なぜブラウザ内でリサイズするのか",[11,1286,1287,1288,958],{},"画像は、送信前に必要な解像度まで落としておくのが基本です。受け側サーバーの自動縮小に任せると、圧縮アルゴリズムを自分で選べず、結果も見えません。何より、",[30,1289,1290],{},"元の高解像度がサーバー側に残ります",[11,1292,1293,1294,1297],{},"顔写真、社員証、内装写真、診断書のスキャン。個人情報が含まれる画像を、ブラウザの「縮小してアップロード」機能付きサービスに投げることは、結果的に",[30,1295,1296],{},"原寸画像をそのままアップロードしている","のと同じです。Zerosend では、リサイズ処理そのものをあなたの端末で行うことで、アップロードする画像が本当に縮小済みであることを保証します。",[23,1299,39],{"id":39},[41,1301,1302,1308,1311,1314,1317],{},[44,1303,1304,51],{},[17,1305,1306],{"href":728},[49,1307,728],{},[44,1309,1310],{},"画像をドラッグ&ドロップ (複数ファイル対応)",[44,1312,1313],{},"目標サイズを指定 — 「幅」「高さ」「長辺」「短辺」のいずれかを固定",[44,1315,1316],{},"「リサイズを開始する」をクリック",[44,1318,802],{},[65,1320,1321],{"id":1321},"用途別の推奨サイズ",[69,1323,1324,1330,1336,1342,1348,1354],{},[44,1325,1326,1329],{},[30,1327,1328],{},"X \u002F Twitter",": 長辺 1600px",[44,1331,1332,1335],{},[30,1333,1334],{},"Instagram",": 正方形 1080px",[44,1337,1338,1341],{},[30,1339,1340],{},"LinkedIn \u002F Facebook",": 長辺 1200px",[44,1343,1344,1347],{},[30,1345,1346],{},"ブログ本文",": 幅 800〜1200px",[44,1349,1350,1353],{},[30,1351,1352],{},"メールの添付",": 長辺 1024px 程度 (画質維持しつつ 500KB 以下に収まりやすい)",[44,1355,1356,1359],{},[30,1357,1358],{},"ECサイトのサムネ",": 幅 400〜600px",[23,1361,91],{"id":91},[11,1363,1364,1365,1367],{},"画像リサイズは、Canvas API の ",[49,1366,1015],{}," を使ったブラウザ標準のバイキュービック補間で行っています。外部ライブラリの呼び出しも、サーバーへの問い合わせもありません。",[69,1369,1370,1376,1382,1388],{},[44,1371,1372,1373,1375],{},"画像を ",[49,1374,854],{}," 要素として読み込む",[44,1377,1378,1379,1381],{},"目標サイズの ",[49,1380,861],{}," を作成",[44,1383,1384,1387],{},[49,1385,1386],{},"ctx.drawImage(img, 0, 0, targetW, targetH)"," で描画",[44,1389,1390,1392],{},[49,1391,124],{}," で出力形式 (JPEG \u002F PNG \u002F WebP) を指定して Blob に",[11,1394,1395],{},"一括処理は Promise.all ではなく順次実行しているため、数十枚でもメモリを圧迫しません。",[23,1397,134],{"id":134},[11,1399,1400,1403],{},[30,1401,1402],{},"Q. 縦横比は保持されますか？","\nA. 既定で保持されます。「幅を合わせる」を選べば高さは自動で計算されます。",[11,1405,1406,1409],{},[30,1407,1408],{},"Q. EXIF (撮影情報) は？","\nA. リサイズ時に落ちます。プライバシー保護の観点ではむしろ利点です。",[11,1411,1412,1415],{},[30,1413,1414],{},"Q. 拡大もできますか？","\nA. できますが推奨しません。拡大は情報を増やせないため、AI 超解像を使わない限り画質は改善しません。",[23,1417,171],{"id":171},[69,1419,1420,1425,1430],{},[44,1421,1422,1424],{},[17,1423,184],{"href":183}," — リサイズ後にさらに軽くしたいときに",[44,1426,1427,1429],{},[17,1428,736],{"href":735}," — WebP \u002F JPEG \u002F PNG の変換",[44,1431,1432,1435],{},[17,1433,1434],{"href":943},"画像編集"," — 切り抜き・回転・反転",{"title":192,"searchDepth":193,"depth":193,"links":1437},[1438,1439,1442,1443,1444],{"id":1284,"depth":193,"text":1284},{"id":39,"depth":193,"text":39,"children":1440},[1441],{"id":1321,"depth":199,"text":1321},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の画像リサイズツールは、画像をサーバーに送らず端末内で寸法変更します。用途別の推奨サイズ、一括処理、品質を落とさないリサイズのコツを Zerosend 編集部が解説。",{},"\u002Fblog\u002Fimage-resize-intro",{"title":1270,"description":1445},"image-resize-intro","blog\u002Fimage-resize-intro",[218,1452,220],"リサイズ","cgPCku-ryY9cT1OjPSzWlJ8Aix9IFfaosaRwJBW9JMw",{"id":1455,"title":1456,"author":6,"body":1457,"category":203,"coverImage":204,"description":1610,"draft":206,"extension":207,"locale":208,"meta":1611,"navigation":210,"noindex":206,"path":1612,"publishedAt":212,"seo":1613,"slug":1614,"stem":1615,"tags":1616,"updatedAt":212,"__hash__":1617},"blog\u002Fblog\u002Fimage-to-pdf-intro.md","画像を 1 つの PDF にまとめる — \u002Ftools\u002Fimage-to-pdf の思想と使い方",{"type":8,"value":1458,"toc":1603},[1459,1462,1467,1469,1476,1483,1485,1508,1510,1516,1546,1549,1551,1557,1566,1572,1581,1583],[11,1460,1461],{},"スマホで撮ったレシート 10 枚を経費精算で PDF にまとめる、スキャンした書類 15 枚を 1 つの PDF にまとめて申請する、商品写真を PDF カタログにする。「画像 → PDF」の変換は、個人から業務まで頻繁に発生する作業です。",[11,1463,1464,21],{},[17,1465,1466],{"href":1248},"Zerosend の画像 → PDF 変換ツール",[23,1468,25],{"id":25},[11,1470,1471,1472,1475],{},"画像 → PDF 変換の入力は、写真・スキャン・スクリーンショットです。つまり",[30,1473,1474],{},"画像 1 枚ずつが個別の機密情報","を持ちます。レシートなら店名・金額・日時・クレカ下 4 桁、スキャン書類なら本文全体、スクショなら画面に写っているすべて。",[11,1477,1478,1479,1482],{},"それらをまとめてオンライン PDF 化サービスに投げるのは、",[30,1480,1481],{},"機密情報セットをまとめて外に出す","ことに他なりません。Zerosend ではローカルで PDF 組み立てまで行うため、アップロードは発生しません。",[23,1484,39],{"id":39},[41,1486,1487,1493,1496,1499,1502,1505],{},[44,1488,1489,51],{},[17,1490,1491],{"href":1248},[49,1492,1248],{},[44,1494,1495],{},"画像を複数枚ドラッグ&ドロップ (JPEG \u002F PNG \u002F WebP)",[44,1497,1498],{},"ページサイズ (A4 \u002F レター \u002F 画像原寸) と向きを選ぶ",[44,1500,1501],{},"並び順をドラッグで調整",[44,1503,1504],{},"「PDF 化を開始する」をクリック",[44,1506,1507],{},"1 つの PDF ファイルとしてダウンロード",[23,1509,91],{"id":91},[11,1511,1512,1515],{},[49,1513,1514],{},"pdf-lib"," を使って PDF を組み立てています。",[69,1517,1518,1521,1527,1537,1540],{},[44,1519,1520],{},"各画像を ArrayBuffer で読み込み",[44,1522,1523,1526],{},[49,1524,1525],{},"PDFDocument.create()"," で新規ドキュメントを作成",[44,1528,111,1529,1532,1533,1536],{},[49,1530,1531],{},"pdfDoc.embedJpg()"," または ",[49,1534,1535],{},"embedPng()"," で画像を埋め込み",[44,1538,1539],{},"ページサイズに合わせて自動で縮小・センタリング",[44,1541,1542,1545],{},[49,1543,1544],{},".save()"," で最終的な PDF バイト列に",[11,1547,1548],{},"画像のサイズ指定は縦横比を保持したまま、指定ページサイズに収まるよう計算されます。",[23,1550,134],{"id":134},[11,1552,1553,1556],{},[30,1554,1555],{},"Q. 画像の順序は変えられますか？","\nA. はい。追加した順に並びますが、ドラッグで並べ替えできます。",[11,1558,1559,1562,1563,1565],{},[30,1560,1561],{},"Q. 画像の向き (縦\u002F横) を個別に変えられますか？","\nA. ページ単位の向きは全体で統一されます。個別に回転したい場合は ",[17,1564,1434],{"href":943}," で先に回転してから PDF 化してください。",[11,1567,1568,1571],{},[30,1569,1570],{},"Q. OCR (文字認識) はかかる？","\nA. かかりません。画像はそのまま PDF に埋め込まれます。検索可能 PDF にしたい場合は別途 OCR ツールを通してください (プライバシー観点では、OCR もローカルで完結するツールを選ぶべきです)。",[11,1573,1574,1577,1578,1580],{},[30,1575,1576],{},"Q. 圧縮は？","\nA. 元画像がそのまま埋め込まれるため、PDF が大きくなりがちです。事前に ",[17,1579,184],{"href":183}," してから投入すると、最終 PDF が軽くなります。",[23,1582,171],{"id":171},[69,1584,1585,1590,1597],{},[44,1586,1587,1589],{},[17,1588,184],{"href":183}," — PDF 化前に画像を軽くする",[44,1591,1592,1596],{},[17,1593,1595],{"href":1594},"\u002Ftools\u002Fpdf-merge","PDF 結合"," — 既存 PDF と結合する",[44,1598,1599,1602],{},[17,1600,1601],{"href":19},"PDF → 画像"," — 逆変換",{"title":192,"searchDepth":193,"depth":193,"links":1604},[1605,1606,1607,1608,1609],{"id":25,"depth":193,"text":25},{"id":39,"depth":193,"text":39},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の画像 → PDF 変換ツールは、複数画像をサーバーに送らず 1 つの PDF にまとめます。スキャン画像の PDF 化・レシートまとめ・申請書類の体裁整え。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fimage-to-pdf-intro",{"title":1456,"description":1610},"image-to-pdf-intro","blog\u002Fimage-to-pdf-intro",[217,218,219,220],"D6ubXIQ0K1VJPj8rh053Aq1XTT7bE9P36nsJMIHnsO4",{"id":1619,"title":1620,"author":6,"body":1621,"category":203,"coverImage":204,"description":1754,"draft":206,"extension":207,"locale":208,"meta":1755,"navigation":210,"noindex":206,"path":1756,"publishedAt":212,"seo":1757,"slug":1758,"stem":1759,"tags":1760,"updatedAt":212,"__hash__":1762},"blog\u002Fblog\u002Fpdf-compress-intro.md","PDF を圧縮する — \u002Ftools\u002Fpdf-compress の思想と使い方",{"type":8,"value":1622,"toc":1747},[1623,1626,1632,1635,1642,1645,1647,1666,1669,1673,1676,1695,1702,1704,1710,1716,1722,1728,1730],[11,1624,1625],{},"メールで PDF を送ろうとしたら「ファイルサイズが大きすぎます」と弾かれた、Slack の無料枠を食い潰す、見積書 PDF が 30MB あって顧客にストレスを与えている。PDF のサイズ圧縮は、業務の摩擦を減らすのに効く小さな改善です。",[11,1627,1628,21],{},[17,1629,1631],{"href":1630},"\u002Ftools\u002Fpdf-compress","Zerosend の PDF 圧縮ツール",[23,1633,1634],{"id":1634},"なぜブラウザ内で圧縮するのか",[11,1636,1637,1638,1641],{},"PDF 圧縮サービスの大半はアップロード型です。つまり",[30,1639,1640],{},"契約書・見積書・健康診断・給与明細を他社サーバーに預ける","ことになります。「削除します」と書かれていても、その履行をユーザーが確認する術はありません。",[11,1643,1644],{},"Zerosend は圧縮処理をローカルで行うため、機密性の高い PDF をそのまま投入できます。DevTools で本当にアップロードされていないことを確認してから、安心して使ってください。",[23,1646,39],{"id":39},[41,1648,1649,1655,1657,1660,1663],{},[44,1650,1651,51],{},[17,1652,1653],{"href":1630},[49,1654,1630],{},[44,1656,54],{},[44,1658,1659],{},"画質レベルを選択 (高品質 \u002F 標準 \u002F 低品質)",[44,1661,1662],{},"「圧縮を開始する」をクリック",[44,1664,1665],{},"軽量化された PDF をダウンロード",[11,1667,1668],{},"スキャン由来の画像 PDF に特に効果があります。ベクタ主体のテキスト PDF はもともと軽いので削減率は控えめです。",[23,1670,1672],{"id":1671},"仕組み-ラスタライズによる再構築","仕組み — ラスタライズによる再構築",[11,1674,1675],{},"Zerosend の PDF 圧縮は、一度ページを画像化して再構築する方式です。",[69,1677,1678,1684,1687,1692],{},[44,1679,1680,1681,1683],{},"元 PDF を ",[49,1682,96],{}," で各ページをキャンバスに描画",[44,1685,1686],{},"描画結果を指定品質で JPEG にエンコード",[44,1688,1689,1691],{},[49,1690,1514],{}," で新しい PDF を組み立て、JPEG ページを埋め込み",[44,1693,1694],{},"元 PDF の metadata (タイトル・作成者など) は引き継ぐ",[11,1696,1697,1698,1701],{},"このアプローチの強みはサイズ削減率の高さ、弱みは",[30,1699,1700],{},"ベクタ情報が失われること"," (テキスト選択・検索不可になる) です。テキスト検索性を維持したい場合は、元 PDF のまま送るか、軽量化の必要性を再検討してください。",[23,1703,134],{"id":134},[11,1705,1706,1709],{},[30,1707,1708],{},"Q. 削減率はどのくらい？","\nA. 画像主体のスキャン PDF なら 50〜80% 減ることもあります。テキスト主体の PDF は 10〜30% 程度です。",[11,1711,1712,1715],{},[30,1713,1714],{},"Q. 圧縮後にテキスト検索できなくなった","\nA. ラスタライズ方式の副作用です。「標準」設定では解像度を維持するため読みやすさは保ちますが、テキストとしては検索できません。",[11,1717,1718,1721],{},[30,1719,1720],{},"Q. OCR は含まれますか？","\nA. 現状は非対応です。圧縮後の PDF を検索可能にしたい場合は、別途 OCR ツールが必要です。",[11,1723,1724,1727],{},[30,1725,1726],{},"Q. 元の PDF が暗号化されている場合は？","\nA. パスワード保護された PDF は処理できません。先にロック解除が必要です。",[23,1729,171],{"id":171},[69,1731,1732,1737,1742],{},[44,1733,1734,1736],{},[17,1735,1595],{"href":1594}," — 圧縮前に結合しておく",[44,1738,1739,1741],{},[17,1740,144],{"href":143}," — 必要なページだけ抽出すれば圧縮も不要なことが多い",[44,1743,1744,1746],{},[17,1745,184],{"href":183}," — スキャン前の個別画像を軽くしておく選択肢",{"title":192,"searchDepth":193,"depth":193,"links":1748},[1749,1750,1751,1752,1753],{"id":1634,"depth":193,"text":1634},{"id":39,"depth":193,"text":39},{"id":1671,"depth":193,"text":1672},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の PDF 圧縮ツールは、PDF をサーバーに送らずブラウザ内でページをラスタライズして再構築し、サイズを削減します。メール添付上限に引っかかる PDF を軽くしたいときに。",{},"\u002Fblog\u002Fpdf-compress-intro",{"title":1620,"description":1754},"pdf-compress-intro","blog\u002Fpdf-compress-intro",[217,1761,220],"圧縮","VKeX-7oi09OkXSKTYY4F_Mac1HcdP3v8fAz8Brsj664",{"id":1764,"title":1765,"author":6,"body":1766,"category":203,"coverImage":204,"description":1922,"draft":206,"extension":207,"locale":208,"meta":1923,"navigation":210,"noindex":206,"path":1924,"publishedAt":212,"seo":1925,"slug":1926,"stem":1927,"tags":1928,"updatedAt":212,"__hash__":1929},"blog\u002Fblog\u002Fpdf-edit-intro.md","PDF のページを並べ替え・削除・回転 — \u002Ftools\u002Fpdf-edit の思想と使い方",{"type":8,"value":1767,"toc":1915},[1768,1771,1778,1780,1786,1789,1791,1829,1831,1860,1869,1871,1877,1883,1889,1895,1897],[11,1769,1770],{},"スキャンしたら逆向きになっていた、最終ページが白紙だから削除したい、契約書の章を入れ替えたい。PDF 編集の 9 割は「ページの並べ替え・削除・回転」で済みます。",[11,1772,1773,1777],{},[17,1774,1776],{"href":1775},"\u002Ftools\u002Fpdf-edit","Zerosend の PDF ページ編集ツール"," は、この基本 3 操作をブラウザ内で完結させます。",[23,1779,948],{"id":948},[11,1781,1782,1783,958],{},"PDF 編集の対象は、ほぼ例外なく機密文書です。業務委託契約、秘密保持契約、顧客カルテ、社内規程、給与明細。これらを「ページを入れ替えるだけ」のオンラインサービスに預けると、",[30,1784,1785],{},"元の全ページが相手のサーバーに渡ります",[11,1787,1788],{},"「処理後にすぐ削除」と書かれていても、保存の痕跡や解析ログをユーザーが検証する手段はありません。Zerosend ではページ編集もローカル処理のため、この透明性の問題を構造的に回避できます。",[23,1790,39],{"id":39},[41,1792,1793,1799,1801,1804,1826],{},[44,1794,1795,51],{},[17,1796,1797],{"href":1775},[49,1798,1775],{},[44,1800,54],{},[44,1802,1803],{},"ページサムネイル一覧が表示される",[44,1805,1806,1807],{},"操作:\n",[69,1808,1809,1815,1821],{},[44,1810,1811,1814],{},[30,1812,1813],{},"並べ替え",": ドラッグでページを入れ替え",[44,1816,1817,1820],{},[30,1818,1819],{},"削除",": 不要なページのゴミ箱アイコンをクリック",[44,1822,1823,1825],{},[30,1824,990],{},": 各ページの回転アイコンで 90° 単位回転",[44,1827,1828],{},"「編集を完了する」をクリックして新しい PDF を出力",[23,1830,91],{"id":91},[69,1832,1833,1839,1842,1848,1855],{},[44,1834,1835,1836,1838],{},"PDF を ",[49,1837,96],{}," でレンダリングしてサムネイル一覧を表示",[44,1840,1841],{},"ページの並び・削除・回転情報を UI 上で管理",[44,1843,1844,1845,1847],{},"「完了」操作時に ",[49,1846,1514],{}," を呼び出し、元 PDF から必要なページを順にコピー",[44,1849,1850,1851,1854],{},"回転は ",[49,1852,1853],{},"page.setRotation()"," で書き込み",[44,1856,1857,1858],{},"最終 PDF として ",[49,1859,1544],{},[11,1861,1862,1863,1865,1866,1868],{},"サムネ描画 (",[49,1864,96],{},") と PDF 組み立て (",[49,1867,1514],{},") の 2 ライブラリで役割分担しています。",[23,1870,134],{"id":134},[11,1872,1873,1876],{},[30,1874,1875],{},"Q. 編集履歴は残りますか？","\nA. 新しい PDF として書き出すため、元ファイルは変更されません。必要なら元ファイルを別途保存しておいてください。",[11,1878,1879,1882],{},[30,1880,1881],{},"Q. ページを複製 (同じページを 2 回入れる) できますか？","\nA. 現状は非対応です。需要があれば追加します。",[11,1884,1885,1888],{},[30,1886,1887],{},"Q. テキストを編集したい","\nA. 本ツールはページ単位の操作のみです。テキスト書き換えや署名追加などは別ツールが必要です。",[11,1890,1891,1894],{},[30,1892,1893],{},"Q. 回転の粒度は？","\nA. 90° 単位のみです。PDF の仕様上、自由角度回転は本来のページ情報を損ねる可能性があるため非対応です。",[23,1896,171],{"id":171},[69,1898,1899,1904,1909],{},[44,1900,1901,1903],{},[17,1902,144],{"href":143}," — 編集ではなく切り分けたいとき",[44,1905,1906,1908],{},[17,1907,1595],{"href":1594}," — 複数 PDF を結合",[44,1910,1911,1914],{},[17,1912,1913],{"href":1630},"PDF 圧縮"," — 編集後のサイズ削減",{"title":192,"searchDepth":193,"depth":193,"links":1916},[1917,1918,1919,1920,1921],{"id":948,"depth":193,"text":948},{"id":39,"depth":193,"text":39},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の PDF ページ編集ツールは、PDF のページ順序変更・削除・回転をサーバーに送らず端末内で行います。スキャン時の向きミス修正や不要ページ削除に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fpdf-edit-intro",{"title":1765,"description":1922},"pdf-edit-intro","blog\u002Fpdf-edit-intro",[217,1095,220],"SfzMAQON3OOM4AYZfz3xZ5qB71ytztm9DyebNNSWdJU",{"id":1931,"title":1932,"author":6,"body":1933,"category":203,"coverImage":204,"description":2089,"draft":206,"extension":207,"locale":208,"meta":2090,"navigation":210,"noindex":206,"path":2091,"publishedAt":212,"seo":2092,"slug":2093,"stem":2094,"tags":2095,"updatedAt":212,"__hash__":2097},"blog\u002Fblog\u002Fpdf-split-intro.md","PDF を分割する — \u002Ftools\u002Fpdf-split の思想と使い方",{"type":8,"value":1934,"toc":2082},[1935,1938,1943,1947,1953,1956,1959,1961,1998,2000,2005,2032,2035,2037,2043,2049,2062,2064],[11,1936,1937],{},"契約書の 2〜5 ページだけ送ればいい、100 ページの資料から関係者ごとに必要なページを分けて配りたい、スキャン時に 1 つの PDF にしてしまった複数書類を切り分けたい。PDF の分割は業務で頻繁に発生します。",[11,1939,1940,21],{},[17,1941,1942],{"href":143},"Zerosend の PDF 分割ツール",[23,1944,1946],{"id":1945},"なぜブラウザ内で-pdf-を分割するのか","なぜブラウザ内で PDF を分割するのか",[11,1948,1949,1950,958],{},"PDF の中身は、契約書・見積書・健康診断結果・給与明細・設計資料など、ほぼすべてが機密性を持ちます。これを「PDF 分割できるオンラインサービス」にアップロードすると、",[30,1951,1952],{},"元の全ページが一旦そのサービスのサーバーに渡ります",[11,1954,1955],{},"ユーザー側が「2〜5 ページだけ必要」と思っていても、サービス側は全ページにアクセスできます。無料で提供されている以上、何らかの対価 (ログ・解析・AI 学習素材) としてファイルが使われている可能性は否定できません。",[11,1957,1958],{},"Zerosend は分割処理そのものがローカルで動くため、この構造的な問題を回避できます。",[23,1960,39],{"id":39},[41,1962,1963,1969,1972,1993,1996],{},[44,1964,1965,51],{},[17,1966,1967],{"href":143},[49,1968,143],{},[44,1970,1971],{},"PDF ファイルをドラッグ&ドロップ",[44,1973,1974,1975],{},"分割方法を選ぶ:\n",[69,1976,1977,1983],{},[44,1978,1979,1982],{},[30,1980,1981],{},"全ページを 1 ページずつ分割"," — 100 ページなら 100 ファイル",[44,1984,1985,1988,1989,1992],{},[30,1986,1987],{},"範囲指定"," — 例: ",[49,1990,1991],{},"1-3, 5, 7-10"," で複数範囲を抽出",[44,1994,1995],{},"「分割を開始する」をクリック",[44,1997,269],{},[23,1999,91],{"id":91},[11,2001,2002,2004],{},[49,2003,1514],{}," というブラウザで動く PDF 編集ライブラリを使っています。",[69,2006,2007,2010,2015,2021,2027],{},[44,2008,2009],{},"入力 PDF を ArrayBuffer として読み込み",[44,2011,2012,108],{},[49,2013,2014],{},"PDFDocument.load()",[44,2016,2017,2018,1381],{},"範囲指定に応じた新しい ",[49,2019,2020],{},"PDFDocument",[44,2022,2023,2026],{},[49,2024,2025],{},"copyPages()"," で必要なページだけコピー",[44,2028,2029,2031],{},[49,2030,1544],{}," で新しい PDF バイト列を生成",[11,2033,2034],{},"すべてメモリ上で処理し、ネットワークには一切送りません。",[23,2036,134],{"id":134},[11,2038,2039,2042],{},[30,2040,2041],{},"Q. 暗号化された PDF (パスワード保護) も分割できる？","\nA. パスワードなしの PDF のみ対応しています。暗号化 PDF は先にロック解除が必要です。",[11,2044,2045,2048],{},[30,2046,2047],{},"Q. ページ数が非常に多い PDF (500 ページなど) は？","\nA. 処理はできますが、ブラウザのメモリ次第で時間がかかります。数百 MB 規模の PDF は端末スペック次第で詰まる可能性があります。",[11,2050,2051,2054,2055,344,2058,2061],{},[30,2052,2053],{},"Q. 分割後のファイル名は？","\nA. 元ファイル名に ",[49,2056,2057],{},"-p1",[49,2059,2060],{},"-p2-5"," のようなサフィックスを付けます。",[23,2063,171],{"id":171},[69,2065,2066,2071,2077],{},[44,2067,2068,2070],{},[17,2069,1595],{"href":1594}," — 分割とは逆に、複数 PDF を 1 つに",[44,2072,2073,2076],{},[17,2074,2075],{"href":1775},"PDF ページ編集"," — ページの並べ替え・削除・回転",[44,2078,2079,2081],{},[17,2080,1913],{"href":1630}," — 分割後のファイルを軽くする",{"title":192,"searchDepth":193,"depth":193,"links":2083},[2084,2085,2086,2087,2088],{"id":1945,"depth":193,"text":1946},{"id":39,"depth":193,"text":39},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の PDF 分割ツールは、PDF をサーバーに送らずブラウザ内でページ単位\u002F範囲指定で分割します。機密文書の特定ページだけ共有したいときに。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fpdf-split-intro",{"title":1932,"description":2089},"pdf-split-intro","blog\u002Fpdf-split-intro",[217,2096,220],"分割","kCwJnR50yT43l5AF860iF-mBucf9FJ5nyTBuUsXsMyY",{"id":4,"title":5,"author":6,"body":2099,"category":203,"coverImage":204,"description":205,"draft":206,"extension":207,"locale":208,"meta":2224,"navigation":210,"noindex":206,"path":211,"publishedAt":212,"seo":2225,"slug":214,"stem":215,"tags":2226,"updatedAt":212,"__hash__":221},{"type":8,"value":2100,"toc":2215},[2101,2103,2107,2109,2113,2115,2117,2133,2135,2149,2151,2155,2175,2177,2179,2185,2189,2193,2199,2201],[11,2102,13],{},[11,2104,2105,21],{},[17,2106,20],{"href":19},[23,2108,25],{"id":25},[11,2110,28,2111,33],{},[30,2112,32],{},[11,2114,36],{},[23,2116,39],{"id":39},[41,2118,2119,2125,2127,2129,2131],{},[44,2120,2121,51],{},[17,2122,2123],{"href":19},[49,2124,19],{},[44,2126,54],{},[44,2128,57],{},[44,2130,60],{},[44,2132,63],{},[65,2134,67],{"id":67},[69,2136,2137,2141,2145],{},[44,2138,2139,76],{},[30,2140,75],{},[44,2142,2143,82],{},[30,2144,81],{},[44,2146,2147,88],{},[30,2148,87],{},[23,2150,91],{"id":91},[11,2152,2153,97],{},[49,2154,96],{},[69,2156,2157,2159,2163,2169,2173],{},[44,2158,102],{},[44,2160,2161,108],{},[49,2162,107],{},[44,2164,111,2165,115,2167,119],{},[49,2166,114],{},[49,2168,118],{},[44,2170,2171,125],{},[49,2172,124],{},[44,2174,128],{},[11,2176,131],{},[23,2178,134],{"id":134},[11,2180,2181,140,2183,145],{},[30,2182,139],{},[17,2184,144],{"href":143},[11,2186,2187,151],{},[30,2188,150],{},[11,2190,2191,157],{},[30,2192,156],{},[11,2194,2195,163,2197,168],{},[30,2196,162],{},[17,2198,167],{"href":166},[23,2200,171],{"id":171},[69,2202,2203,2207,2211],{},[44,2204,2205,178],{},[17,2206,144],{"href":143},[44,2208,2209,185],{},[17,2210,184],{"href":183},[44,2212,2213,190],{},[17,2214,167],{"href":166},{"title":192,"searchDepth":193,"depth":193,"links":2216},[2217,2218,2221,2222,2223],{"id":25,"depth":193,"text":25},{"id":39,"depth":193,"text":39,"children":2219},[2220],{"id":67,"depth":199,"text":67},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},{},{"title":5,"description":205},[217,218,219,220],{"id":2228,"title":2229,"author":6,"body":2230,"category":203,"coverImage":204,"description":2383,"draft":206,"extension":207,"locale":208,"meta":2384,"navigation":210,"noindex":206,"path":2385,"publishedAt":212,"seo":2386,"slug":2387,"stem":2388,"tags":2389,"updatedAt":212,"__hash__":2391},"blog\u002Fblog\u002Fqr-create-intro.md","QR コードを生成する — \u002Ftools\u002Fqr-create の思想と使い方",{"type":8,"value":2231,"toc":2375},[2232,2235,2242,2246,2252,2255,2258,2260,2280,2283,2309,2311,2317,2328,2331,2333,2339,2348,2354,2356],[11,2233,2234],{},"自社サイトの URL を名刺に載せる、Wi-Fi パスワードを会議室の壁に貼る、イベントのアンケート URL をポスターに印刷する。QR コードは、URL や短いテキストを物理空間に橋渡しする便利な手段です。",[11,2236,2237,2241],{},[17,2238,2240],{"href":2239},"\u002Ftools\u002Fqr-create","Zerosend の QR コード生成ツール"," は、QR を作る作業をブラウザ内で完結させます。",[23,2243,2245],{"id":2244},"なぜブラウザ内で-qr-を作るのか","なぜブラウザ内で QR を作るのか",[11,2247,2248,2249,958],{},"QR 生成サービスの多くは、入力した URL やテキストをサーバーに送って画像を返す形式です。「URL を QR にしただけ」と思いがちですが、",[30,2250,2251],{},"どの URL を誰がいつ QR にしたかという履歴がサーバーに残り得ます",[11,2253,2254],{},"特に社内専用 URL、β版テスト URL、限定公開のアンケート URL などは、外部に知られたくない情報です。また、Wi-Fi パスワードや連絡先情報をテキストから QR 化する場合、中身がそのまま第三者のサーバーに渡ります。",[11,2256,2257],{},"Zerosend では QR 生成処理そのものがブラウザ内で完結するため、入力したテキストは一切外に出ません。",[23,2259,39],{"id":39},[41,2261,2262,2268,2271,2274,2277],{},[44,2263,2264,51],{},[17,2265,2266],{"href":2239},[49,2267,2239],{},[44,2269,2270],{},"テキスト・URL を入力",[44,2272,2273],{},"出力形式 (PNG \u002F SVG)・サイズ・誤り訂正レベルを選択",[44,2275,2276],{},"「QR を生成する」をクリック",[44,2278,2279],{},"画像をダウンロード",[23,2281,2282],{"id":2282},"誤り訂正レベルの選び方",[69,2284,2285,2291,2297,2303],{},[44,2286,2287,2290],{},[30,2288,2289],{},"L (Low, 7%)",": 小さい QR にしたいとき。印刷品質が良いなら実用十分",[44,2292,2293,2296],{},[30,2294,2295],{},"M (Medium, 15%)",": 汎用・標準",[44,2298,2299,2302],{},[30,2300,2301],{},"Q (Quartile, 25%)",": 名刺・ステッカーなど汚れ・折れが予想される用途",[44,2304,2305,2308],{},[30,2306,2307],{},"H (High, 30%)",": ロゴ重ね合わせ・屋外掲示で摩耗想定",[23,2310,91],{"id":91},[11,2312,2313,2316],{},[49,2314,2315],{},"qrcode"," という広く使われているブラウザ対応ライブラリを使っています。",[69,2318,2319,2322,2325],{},[44,2320,2321],{},"入力テキストから QR マトリクスを計算",[44,2323,2324],{},"Canvas に描画 (PNG) または SVG として直接生成",[44,2326,2327],{},"モジュール数・誤り訂正レベル・色指定に応じて調整",[11,2329,2330],{},"SVG で生成すれば、拡大縮小しても劣化しないベクタ画像が得られます。印刷用途には SVG がお勧めです。",[23,2332,134],{"id":134},[11,2334,2335,2338],{},[30,2336,2337],{},"Q. QR に含められるテキスト量は？","\nA. 仕様上は最大 4296 文字 (英数字)、日本語なら 1817 文字程度まで。長くなるほど QR の密度が上がり、スキャン成功率は下がります。URL 短縮サービスの利用も検討してください (ただしサードパーティ依存が増える)。",[11,2340,2341,2344,2345,2347],{},[30,2342,2343],{},"Q. ロゴを中央に重ねたい","\nA. 本ツールでは直接対応していませんが、PNG \u002F SVG をダウンロードしたあと ",[17,2346,1434],{"href":943}," で合成できます。誤り訂正は H にしておくとスキャン成功率が上がります。",[11,2349,2350,2353],{},[30,2351,2352],{},"Q. 作った QR の履歴は残りますか？","\nA. 残りません。タブを閉じた時点ですべて消えます。",[23,2355,171],{"id":171},[69,2357,2358,2365,2370],{},[44,2359,2360,2364],{},[17,2361,2363],{"href":2362},"\u002Ftools\u002Fqr-read","QR コード読み取り"," — 生成した QR の検証・他人の QR の中身確認",[44,2366,2367,2369],{},[17,2368,1434],{"href":943}," — QR にロゴを重ねる合成に",[44,2371,2372,2374],{},[17,2373,1249],{"href":1248}," — 複数 QR を 1 枚にまとめて印刷",{"title":192,"searchDepth":193,"depth":193,"links":2376},[2377,2378,2379,2380,2381,2382],{"id":2244,"depth":193,"text":2245},{"id":39,"depth":193,"text":39},{"id":2282,"depth":193,"text":2282},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の QR コード生成ツールは、URL やテキストをサーバーに送らずブラウザ内で QR 画像 (PNG \u002F SVG) に変換します。名刺・ポスター・プレゼン用の QR 作成に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fqr-create-intro",{"title":2229,"description":2383},"qr-create-intro","blog\u002Fqr-create-intro",[2390,220],"QR","DsH_yfTI7xypljWMDgLacgDgEhya0OFaN1gCRUol0hc",{"id":2393,"title":2394,"author":6,"body":2395,"category":203,"coverImage":204,"description":2567,"draft":206,"extension":207,"locale":208,"meta":2568,"navigation":210,"noindex":206,"path":2569,"publishedAt":212,"seo":2570,"slug":2571,"stem":2572,"tags":2573,"updatedAt":212,"__hash__":2575},"blog\u002Fblog\u002Fqr-read-intro.md","QR コードを読み取る — \u002Ftools\u002Fqr-read の思想と使い方",{"type":8,"value":2396,"toc":2559},[2397,2400,2406,2410,2417,2420,2434,2437,2439,2460,2462,2468,2486,2489,2492,2495,2513,2516,2518,2524,2533,2539,2541],[11,2398,2399],{},"怪しい広告に貼られていた QR、送られてきたチラシの QR、カメラで読むにはスマホを近づける距離が取りづらい QR。「画像として手元にある QR を PC でササッと中身だけ確認したい」という場面は意外と多いものです。",[11,2401,2402,2405],{},[17,2403,2404],{"href":2362},"Zerosend の QR 読み取りツール"," は、この用途のためにあります。フィッシングやスキャン型詐欺への自衛にも使えます。",[23,2407,2409],{"id":2408},"なぜブラウザ内で-qr-を読み取るのか","なぜブラウザ内で QR を読み取るのか",[11,2411,2412,2413,2416],{},"QR 読み取り=「カメラで撮って自動でリンクを開く」と考えがちですが、これは",[30,2414,2415],{},"危険な挙動","です。悪意のある QR はフィッシングサイト、マルウェア配布 URL、課金トラップ、不審なアプリインストールに誘導することがあります。",[11,2418,2419],{},"Zerosend はこれに対し 2 つの方針を取ります。",[41,2421,2422,2428],{},[44,2423,2424,2427],{},[30,2425,2426],{},"画像読み取り処理をローカルで行う"," — QR 画像を第三者に渡さない",[44,2429,2430,2433],{},[30,2431,2432],{},"デコード結果を自動遷移しない"," — URL が含まれていても、まずテキストとして表示し、ユーザーが内容を確認してから手動で判断できる",[11,2435,2436],{},"これはセキュリティ設計として重要な原則で、ZerosendのCLAUDE.mdにも「外部 URL への自動遷移禁止」として明記されています。",[23,2438,39],{"id":39},[41,2440,2441,2447,2450,2457],{},[44,2442,2443,51],{},[17,2444,2445],{"href":2362},[49,2446,2362],{},[44,2448,2449],{},"QR が写っている画像をドラッグ&ドロップ",[44,2451,2452,2453,2456],{},"自動でデコードが走り、結果が",[30,2454,2455],{},"プレーンテキスト","として表示される",[44,2458,2459],{},"内容を確認し、必要なら手動でコピー・遷移",[23,2461,91],{"id":91},[11,2463,2464,2467],{},[49,2465,2466],{},"jsQR"," というブラウザ対応の純 JavaScript QR デコーダを使っています。",[69,2469,2470,2474,2480,2483],{},[44,2471,1372,2472,862],{},[49,2473,861],{},[44,2475,2476,2479],{},[49,2477,2478],{},"getImageData()"," でピクセル配列を取得",[44,2481,2482],{},"jsQR がピクセル配列から QR を検出・デコード",[44,2484,2485],{},"結果をテキストとしてそのまま表示 (HTML として解釈しない・リンク化しない)",[11,2487,2488],{},"ライブラリは WASM ではなく純 JavaScript 実装のため、初回ロードが軽いのも特徴です。",[23,2490,2491],{"id":2491},"フィッシング対策としての使い方",[11,2493,2494],{},"怪しいメール・チラシ・SMS に QR が含まれているとき:",[41,2496,2497,2500,2507,2510],{},[44,2498,2499],{},"画像をスクリーンショットや保存で取得 (スキャンしない)",[44,2501,2502,2503,2506],{},"Zerosend で読み取って",[30,2504,2505],{},"テキストとして"," URL を確認",[44,2508,2509],{},"URL 構造に違和感がないかチェック (正規サイトのサブドメイン偽装、短縮 URL 経由、意味不明なパスなど)",[44,2511,2512],{},"問題なさそうなら手動でアドレスバーに入力して遷移",[11,2514,2515],{},"カメラで直接読むと一発でブラウザが開くリスクがありますが、この手順ならテキストで一度確認できます。",[23,2517,134],{"id":134},[11,2519,2520,2523],{},[30,2521,2522],{},"Q. 画像内に複数の QR がある場合は？","\nA. 現状は最初に検出された 1 つだけ読み取ります。",[11,2525,2526,2529,2530,2532],{},[30,2527,2528],{},"Q. 読み取れない QR","\nA. 解像度不足・反射・歪みが主な原因です。撮り直すか ",[17,2531,1434],{"href":943}," で補正を試してください。",[11,2534,2535,2538],{},[30,2536,2537],{},"Q. 読み取り結果がサーバーに送られていないか確認したい","\nA. DevTools の Network タブを開いてから QR 画像をドロップしてください。通信が発生しないことが確認できます。",[23,2540,171],{"id":171},[69,2542,2543,2549,2554],{},[44,2544,2545,2548],{},[17,2546,2547],{"href":2239},"QR コード生成"," — 作った QR の検証にも使える",[44,2550,2551,2553],{},[17,2552,1434],{"href":943}," — QR 画像の切り抜き・回転で読み取り成功率向上",[44,2555,2556,2558],{},[17,2557,184],{"href":183}," — 読み取れた QR 画像を軽く保存",{"title":192,"searchDepth":193,"depth":193,"links":2560},[2561,2562,2563,2564,2565,2566],{"id":2408,"depth":193,"text":2409},{"id":39,"depth":193,"text":39},{"id":91,"depth":193,"text":91},{"id":2491,"depth":193,"text":2491},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の QR 読み取りツールは、画像をサーバーに送らずブラウザ内で QR の中身をテキスト抽出します。リンク先の自動遷移はせず、安全に内容を確認できます。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fqr-read-intro",{"title":2394,"description":2567},"qr-read-intro","blog\u002Fqr-read-intro",[2390,220,2574],"セキュリティ","4FjBNHwI0afA6UgHyTZbgfJtqb9hmC9rK5CiPA_rCgY",{"id":2577,"title":2578,"author":6,"body":2579,"category":203,"coverImage":204,"description":2809,"draft":206,"extension":207,"locale":208,"meta":2810,"navigation":210,"noindex":206,"path":2811,"publishedAt":212,"seo":2812,"slug":2813,"stem":2814,"tags":2815,"updatedAt":212,"__hash__":2817},"blog\u002Fblog\u002Fvideo-compress-intro.md","動画をブラウザ内で圧縮する — \u002Ftools\u002Fvideo-compress の思想と使い方",{"type":8,"value":2580,"toc":2797},[2581,2584,2595,2598,2601,2608,2619,2621,2624,2643,2646,2672,2675,2679,2682,2686,2697,2733,2736,2740,2747,2749,2755,2761,2767,2773,2775,2794],[11,2582,2583],{},"打ち合わせ動画、商品撮影、画面録画、子供の運動会。日常で動画を扱う場面は増える一方で、SNS やメッセンジャーのサイズ制限、メールの添付上限、サーバーのストレージコストといった現実的な壁にぶつかります。",[11,2585,2586,2587,2594],{},"Zerosend は ",[17,2588,2590,2591,2593],{"href":2589},"\u002Ftools\u002Fvideo-compress","動画圧縮ツール (",[49,2592,2589],{},")"," を、この「軽くしたいだけなのに、動画を他人のサーバーに預ける必要はない」という素朴な違和感を起点に作りました。この記事では、なぜ作ったのか、どう使うのか、裏で何が起きているのかを Zerosend 編集部が整理します。",[23,2596,2597],{"id":2597},"なぜブラウザ内で動画を圧縮するのか",[11,2599,2600],{},"動画は個人情報そのものです。顔・声・背景・位置情報、ときには画面録画の中にパスワードや顧客名まで写り込みます。これをオンラインの圧縮サービスにアップロードするということは、事実上その内容を一度他人のサーバーに預けることを意味します。",[11,2602,2603,2604,2607],{},"多くのサービスは「一定時間で自動削除」を謳いますが、",[30,2605,2606],{},"その削除は利用者から検証できません","。削除完了のスクリーンショットを送ってくれるわけでもなく、ログがどこまで残るかも不透明です。未公開の企画映像や社内会議の録画を、無料ツールに放り込むことに抵抗を感じたことがある人は多いはずです。",[11,2609,2610,2611,2614,2615,2618],{},"Zerosend は逆のアプローチを取ります。",[30,2612,2613],{},"動画ファイルを最初から外に出さない","。処理はすべて、あなたがいま開いているこのブラウザ、ローカル端末の CPU と GPU の中だけで完結します。DevTools の Network タブを開いたまま圧縮を実行すれば、動画そのものがアップロードされていないことを自分の目で確認できます。信用してもらう代わりに、",[30,2616,2617],{},"検証可能にする"," — これが Zerosend の基本方針です。",[23,2620,39],{"id":39},[11,2622,2623],{},"操作はシンプルです。",[41,2625,2626,2632,2635,2638,2640],{},[44,2627,2628,51],{},[17,2629,2630],{"href":2589},[49,2631,2589],{},[44,2633,2634],{},"画面中央のドロップゾーンに動画ファイルをドラッグ&ドロップ、またはクリックして選択 (MP4 \u002F WebM \u002F MOV、最大 500MB)",[44,2636,2637],{},"圧縮強度 (CRF) と解像度を選ぶ",[44,2639,1662],{},[44,2641,2642],{},"処理が終わると「処理完了。あなたのファイルは外に出ていません。」と表示され、ダウンロードボタンから結果を保存できる",[65,2644,2645],{"id":2645},"設定の目安",[69,2647,2648,2654,2660,2666],{},[44,2649,2650,2653],{},[30,2651,2652],{},"高画質 (CRF 23)",": 画質維持を最優先。削減率は 10〜30% 程度。保存用のマスター映像向け",[44,2655,2656,2659],{},[30,2657,2658],{},"標準 (CRF 28)",": 視覚的な劣化は軽微。削減率 40〜70%。ウェブ掲載・SNS 共有に",[44,2661,2662,2665],{},[30,2663,2664],{},"小さめ (CRF 32)",": 多少ぼやけるが容量優先。チャット添付・LINE・メール向け",[44,2667,2668,2671],{},[30,2669,2670],{},"最小 (CRF 36)",": 輪郭が甘くなる。品質より「とにかく送れる」が最優先なとき",[11,2673,2674],{},"解像度は 100 \u002F 75 \u002F 50% から選べます。1080p の素材を 75% にすると、CRF を 1〜2 下げるより確実にサイズが落ちます。",[23,2676,2678],{"id":2677},"仕組み-二段構えのエンジン","仕組み — 二段構えのエンジン",[11,2680,2681],{},"Zerosend の動画圧縮は、単一のエンジンに依存していません。ブラウザの能力を見て、もっとも速い経路を自動で選びます。",[65,2683,2685],{"id":2684},"_1-webcodecs-高速パス","1. WebCodecs (高速パス)",[11,2687,2688,2689,2692,2693,2696],{},"Chrome \u002F Edge \u002F 最近の Safari には ",[49,2690,2691],{},"WebCodecs"," API が実装されており、",[30,2694,2695],{},"GPU 支援の H.264 エンコーダ","をブラウザから直接呼び出せます。Zerosend は対応環境では次のパイプラインで処理します。",[69,2698,2699,2705,2711,2718,2724,2727],{},[44,2700,2701,2704],{},[49,2702,2703],{},"mp4box.js"," で MP4 ファイルを demux",[44,2706,2707,2710],{},[49,2708,2709],{},"VideoDecoder"," でフレームを復号 (ハードウェアアクセラレーション)",[44,2712,2713,2714,2717],{},"必要なら ",[49,2715,2716],{},"OffscreenCanvas"," でリサイズ",[44,2719,2720,2723],{},[49,2721,2722],{},"VideoEncoder"," で H.264 に再エンコード (GPU)",[44,2725,2726],{},"音声はロスレスコピー (AAC のチャンクをそのまま維持)",[44,2728,2729,2732],{},[49,2730,2731],{},"mp4-muxer"," で MP4 に mux し、Blob として出力",[11,2734,2735],{},"これにより、数百 MB の動画も数十秒で処理できます。処理後の結果カードに「エンジン: webcodecs」と表示されれば、このパスが走っています。",[65,2737,2739],{"id":2738},"_2-ffmpegwasm-フォールバック","2. ffmpeg.wasm (フォールバック)",[11,2741,2742,2743,2746],{},"WebCodecs が未対応のブラウザ、HEVC などの特殊なコーデック入力、mp4box が parse できない特殊コンテナのときは、自動的に ",[49,2744,2745],{},"ffmpeg.wasm"," に切り替わります。こちらは完全に CPU で処理するため速度は落ちますが、対応できるフォーマットの幅が段違いに広いのが強みです。ffmpeg-core は Cloudflare R2 から、同一オリジンのパスを経由して 32MB の WASM を取得します。初回のみ時間がかかりますが、2 回目以降はブラウザのキャッシュから復元されます。",[23,2748,134],{"id":134},[11,2750,2751,2754],{},[30,2752,2753],{},"Q. 処理中にインターネット接続が切れたら？","\nA. 動画本体の送受信は発生しないため、圧縮処理自体は継続します。エンジン (ffmpeg.wasm) が未ロードの状態だと初回ダウンロードで失敗しますが、一度読み込んだあとはオフラインでも動作します。",[11,2756,2757,2760],{},[30,2758,2759],{},"Q. 結果のファイルはどこに保存されますか？","\nA. ダウンロードボタンを押したときのブラウザの保存先です。サーバーには何も残りません。結果ファイルはタブを閉じるとメモリから消えます。",[11,2762,2763,2766],{},[30,2764,2765],{},"Q. 画質が思ったより落ちます。","\nA. CRF を下げる (例: 28 → 23)、または解像度の縮小をやめる (50% → 100%) と改善します。素材が 4K なら、100% のまま CRF を下げるより 75% + CRF 25 の方が視覚的なバランスが取れやすいです。",[11,2768,2769,2772],{},[30,2770,2771],{},"Q. iPhone で撮った MOV も処理できますか？","\nA. はい。HEVC (H.265) の場合は ffmpeg.wasm 側のフォールバックに回るため時間がかかりますが、H.264 にトランスコードされた MP4 として出力されます。",[23,2774,171],{"id":171},[69,2776,2777,2784,2789],{},[44,2778,2779,2783],{},[17,2780,2782],{"href":2781},"\u002Ftools\u002Fvideo-to-gif","動画 → GIF"," — SNS の表紙やドキュメント挿入に",[44,2785,2786,2788],{},[17,2787,410],{"href":409}," — 必要な区間だけ切り出してから圧縮すると効率的",[44,2790,2791,2793],{},[17,2792,403],{"href":402}," — MOV \u002F WebM → MP4 など",[11,2795,2796],{},"Zerosend は「日常のちょっとした加工を、あなたの端末で完結させる」ことに徹したツール集です。動画の中身があなたの手元から離れないことを、DevTools で自分の目で確かめてから使ってみてください。",{"title":192,"searchDepth":193,"depth":193,"links":2798},[2799,2800,2803,2807,2808],{"id":2597,"depth":193,"text":2597},{"id":39,"depth":193,"text":39,"children":2801},[2802],{"id":2645,"depth":199,"text":2645},{"id":2677,"depth":193,"text":2678,"children":2804},[2805,2806],{"id":2684,"depth":199,"text":2685},{"id":2738,"depth":199,"text":2739},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の動画圧縮ツールは、動画ファイルをサーバーに送らずブラウザ内で再エンコードしてサイズを削減します。WebCodecs で GPU 支援、未対応環境では ffmpeg.wasm にフォールバック。設計思想と使い方、仕組みを Zerosend 編集部が解説します。",{},"\u002Fblog\u002Fvideo-compress-intro",{"title":2578,"description":2809},"video-compress-intro","blog\u002Fvideo-compress-intro",[2816,1761,2691,220],"動画","ccJoeP9JV0Bqlfhgq6LpUwyaFfFS7koHd_Uj655guv8",{"id":2819,"title":2820,"author":6,"body":2821,"category":203,"coverImage":204,"description":2974,"draft":206,"extension":207,"locale":208,"meta":2975,"navigation":210,"noindex":206,"path":2976,"publishedAt":212,"seo":2977,"slug":2978,"stem":2979,"tags":2980,"updatedAt":212,"__hash__":2981},"blog\u002Fblog\u002Fvideo-convert-intro.md","動画形式を変換する — \u002Ftools\u002Fvideo-convert の思想と使い方",{"type":8,"value":2822,"toc":2966},[2823,2826,2832,2834,2841,2844,2846,2865,2868,2888,2890,2893,2914,2917,2919,2925,2931,2940,2946,2948],[11,2824,2825],{},"iPhone で撮った MOV を Windows に送りたい、古いビデオカメラの AVI を YouTube に上げたい、ブラウザで再生できる形式に揃えたい。動画の形式変換は、互換性問題を解決する定番作業です。",[11,2827,2828,2831],{},[17,2829,2830],{"href":402},"Zerosend の動画形式変換ツール"," は、この変換をブラウザ内で完結させます。",[23,2833,25],{"id":25},[11,2835,2836,2837,2840],{},"動画ファイルは、それがどのような内容であっても",[30,2838,2839],{},"撮影者・被写体・撮影場所","という 3 種の個人情報を常に含みます。結婚式の映像、社内イベントの録画、研修動画、顧客インタビュー。これらを無料のオンライン変換サービスに預けることは、これらの映像を第三者のサーバーに一時的に置くことと同じです。",[11,2842,2843],{},"Zerosend では変換処理がローカルで完結するため、この構造的リスクを回避できます。",[23,2845,39],{"id":39},[41,2847,2848,2854,2857,2860,2862],{},[44,2849,2850,51],{},[17,2851,2852],{"href":402},[49,2853,402],{},[44,2855,2856],{},"動画ファイルをドラッグ&ドロップ",[44,2858,2859],{},"出力形式 (MP4 \u002F WebM) を選ぶ",[44,2861,60],{},[44,2863,2864],{},"ダウンロード",[23,2866,2867],{"id":2867},"形式の使い分け",[69,2869,2870,2876,2882],{},[44,2871,2872,2875],{},[30,2873,2874],{},"MP4 (H.264 + AAC)",": 汎用。ブラウザ・デバイス・SNS すべてで最も広く対応",[44,2877,2878,2881],{},[30,2879,2880],{},"WebM (VP9 + Opus)",": ブラウザネイティブ。ウェブサイト掲載で効率が良い",[44,2883,2884,2887],{},[30,2885,2886],{},"互換性優先なら MP4",": 現状、疑問があれば MP4 を選ぶのが安全",[23,2889,91],{"id":91},[11,2891,2892],{},"ffmpeg.wasm の再エンコードを利用しています。",[69,2894,2895,2898,2908,2911],{},[44,2896,2897],{},"入力動画を ffmpeg FS に書き込み",[44,2899,2900,2903,2904,2907],{},[49,2901,2902],{},"-c:v libx264 -c:a aac"," (MP4) または ",[49,2905,2906],{},"-c:v libvpx-vp9 -c:a libopus"," (WebM) で再エンコード",[44,2909,2910],{},"出力を Blob としてメモリに展開",[44,2912,2913],{},"ダウンロード用 URL を生成",[11,2915,2916],{},"再エンコードのため処理時間は入力の長さに比例します。30 秒の動画で数秒〜数十秒が目安です。",[23,2918,134],{"id":134},[11,2920,2921,2924],{},[30,2922,2923],{},"Q. 変換すると画質は落ちますか？","\nA. 再エンコードするため、理論上は多少劣化します。ただし実用レベルでは視覚的にほぼわからない範囲です。",[11,2926,2927,2930],{},[30,2928,2929],{},"Q. コーデック指定や高度なオプションを変えたい","\nA. 本ツールは一般用途向けのプリセットで固定しています。細かい制御が必要なら、別のプロフェッショナル向けツールを検討してください。",[11,2932,2933,2936,2937,2939],{},[30,2934,2935],{},"Q. 音声のみ抽出したい","\nA. ",[17,2938,510],{"href":235}," をお使いください。",[11,2941,2942,2945],{},[30,2943,2944],{},"Q. 対応していない入力形式","\nA. ffmpeg がサポートする範囲ですが、特殊コーデック (Pro Res \u002F DNxHD など) は未対応の場合があります。",[23,2947,171],{"id":171},[69,2949,2950,2956,2961],{},[44,2951,2952,2955],{},[17,2953,2954],{"href":2589},"動画圧縮"," — 変換と同時にサイズも削減したいとき",[44,2957,2958,2960],{},[17,2959,410],{"href":409}," — 変換前に必要な区間だけ切り出す",[44,2962,2963,2965],{},[17,2964,510],{"href":235}," — 動画から音声だけ抽出して変換",{"title":192,"searchDepth":193,"depth":193,"links":2967},[2968,2969,2970,2971,2972,2973],{"id":25,"depth":193,"text":25},{"id":39,"depth":193,"text":39},{"id":2867,"depth":193,"text":2867},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の動画形式変換ツールは、MOV \u002F WebM \u002F MKV \u002F AVI などの動画をサーバーに送らずブラウザ内で MP4 など互換性の高い形式に変換します。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fvideo-convert-intro",{"title":2820,"description":2974},"video-convert-intro","blog\u002Fvideo-convert-intro",[2816,219,220],"i_qF2RQ1ekN3VuWdXHCBHMT8WsRj_g6jblGEPzBfnMo",{"id":2983,"title":2984,"author":6,"body":2985,"category":203,"coverImage":204,"description":3149,"draft":206,"extension":207,"locale":208,"meta":3150,"navigation":210,"noindex":206,"path":3151,"publishedAt":212,"seo":3152,"slug":3153,"stem":3154,"tags":3155,"updatedAt":212,"__hash__":3157},"blog\u002Fblog\u002Fvideo-to-gif-intro.md","動画を GIF に変換する — \u002Ftools\u002Fvideo-to-gif の思想と使い方",{"type":8,"value":2986,"toc":3141},[2987,2990,2995,2999,3005,3008,3010,3032,3035,3038,3064,3066,3077,3096,3099,3101,3110,3116,3122,3124],[11,2988,2989],{},"画面操作の説明を Slack で共有したい、バグの再現手順を issue に貼りたい、X のタイムラインで動く画像にしたい。動画が重くて共有しづらい場面で GIF は今でも現役です。",[11,2991,2992,2831],{},[17,2993,2994],{"href":2781},"Zerosend の 動画 → GIF 変換ツール",[23,2996,2998],{"id":2997},"なぜブラウザ内で-gif-変換するのか","なぜブラウザ内で GIF 変換するのか",[11,3000,3001,3002,958],{},"画面録画の中身は、UI スクリーンショット以上に情報を含みます。操作中に映る URL・ユーザー名・通知内容・顧客の名前。これらを含む動画を GIF 変換サービスにアップロードすると、",[30,3003,3004],{},"動画の全フレームが相手のサーバーに渡ります",[11,3006,3007],{},"Zerosend では変換処理をローカルで行うため、そのリスクがありません。DevTools で通信が発生していないことを確認してから使ってください。",[23,3009,39],{"id":39},[41,3011,3012,3018,3021,3024,3027,3030],{},[44,3013,3014,51],{},[17,3015,3016],{"href":2781},[49,3017,2781],{},[44,3019,3020],{},"動画ファイルをドラッグ&ドロップ (MP4 \u002F WebM \u002F MOV)",[44,3022,3023],{},"切り出し区間 (開始時刻・終了時刻) を指定",[44,3025,3026],{},"フレームレート (5 \u002F 10 \u002F 15fps) と幅を選択",[44,3028,3029],{},"「GIF 化を開始する」をクリック",[44,3031,2864],{},[23,3033,3034],{"id":3034},"サイズを抑えるコツ",[11,3036,3037],{},"GIF は形式として大きくなりがちです。以下の指針で調整してください。",[69,3039,3040,3046,3052,3058],{},[44,3041,3042,3045],{},[30,3043,3044],{},"区間は短く",": 3〜6 秒が実用上の上限",[44,3047,3048,3051],{},[30,3049,3050],{},"幅は 480px 以下",": Slack・Twitter で使うなら 480px 前後で十分",[44,3053,3054,3057],{},[30,3055,3056],{},"フレームレートは 10fps",": 15fps 以上は体感差が小さくサイズだけ増える",[44,3059,3060,3063],{},[30,3061,3062],{},"色数は制限",": ツール側で最適化しているが、単調な色味の動画ほどうまくハマる",[23,3065,91],{"id":91},[11,3067,3068,3069,3072,3073,3076],{},"ffmpeg.wasm で動画を復号し、",[49,3070,3071],{},"palettegen"," と ",[49,3074,3075],{},"paletteuse"," フィルタを使って GIF の 256 色パレットに最適化して書き出しています。",[69,3078,3079,3081,3087,3093],{},[44,3080,2897],{},[44,3082,3083,3086],{},[49,3084,3085],{},"-vf \"fps=10,scale=480:-1:flags=lanczos,palettegen\""," で最適パレット生成",[44,3088,3089,3092],{},[49,3090,3091],{},"-vf \"fps=10,scale=480:-1:flags=lanczos,paletteuse\""," で GIF エンコード",[44,3094,3095],{},"Blob としてメモリに展開",[11,3097,3098],{},"2 パス処理をブラウザ内で完結させているため、サーバー送信は一切発生しません。",[23,3100,134],{"id":134},[11,3102,3103,3106,3107,3109],{},[30,3104,3105],{},"Q. 長い動画を GIF にするとサイズがとても大きくなる","\nA. GIF は非可逆ですが圧縮効率は動画形式より大幅に劣ります。30 秒以上の場合は ",[17,3108,2954],{"href":2589}," で軽量 MP4 のままにするのがお勧めです。",[11,3111,3112,3115],{},[30,3113,3114],{},"Q. 音声は入りますか？","\nA. GIF 仕様上、音声は含められません。音声付きで共有したいなら動画のままが適切です。",[11,3117,3118,3121],{},[30,3119,3120],{},"Q. 透過 GIF は作れますか？","\nA. 1 ビット透過なら可能ですが、動画ソースからの抽出は実用的でないため、本ツールでは非対応です。",[23,3123,171],{"id":171},[69,3125,3126,3131,3136],{},[44,3127,3128,3130],{},[17,3129,410],{"href":409}," — GIF 化前に必要な区間だけ切り出す",[44,3132,3133,3135],{},[17,3134,2954],{"href":2589}," — GIF の代わりに軽量 MP4 にする選択肢",[44,3137,3138,3140],{},[17,3139,403],{"href":402}," — 他形式への変換",{"title":192,"searchDepth":193,"depth":193,"links":3142},[3143,3144,3145,3146,3147,3148],{"id":2997,"depth":193,"text":2998},{"id":39,"depth":193,"text":39},{"id":3034,"depth":193,"text":3034},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の 動画 → GIF 変換ツールは、動画をサーバーに送らずブラウザ内で GIF アニメに変換します。SNS・ドキュメント・Slack 用の短尺アニメ作成に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fvideo-to-gif-intro",{"title":2984,"description":3149},"video-to-gif-intro","blog\u002Fvideo-to-gif-intro",[2816,3156,220],"GIF","YqVtzywNXMoliy5XfKyh8G6oMk94tuk4-sQL7-9g0uE",{"id":3159,"title":3160,"author":6,"body":3161,"category":203,"coverImage":204,"description":3291,"draft":206,"extension":207,"locale":208,"meta":3292,"navigation":210,"noindex":206,"path":3293,"publishedAt":212,"seo":3294,"slug":3295,"stem":3296,"tags":3297,"updatedAt":212,"__hash__":3298},"blog\u002Fblog\u002Fvideo-trim-intro.md","動画をトリミング (切り出し) する — \u002Ftools\u002Fvideo-trim の思想と使い方",{"type":8,"value":3162,"toc":3284},[3163,3166,3171,3173,3180,3183,3185,3204,3206,3214,3230,3233,3235,3243,3248,3254,3265,3267],[11,3164,3165],{},"60 分の会議録画から「重要な 3 分」だけ共有したい、旅行動画の最初の手ブレ部分をカットしたい、画面録画の誤操作部分を除きたい。動画のトリミングは、共有前の定番作業です。",[11,3167,3168,21],{},[17,3169,3170],{"href":409},"Zerosend の動画トリミングツール",[23,3172,446],{"id":446},[11,3174,3175,3176,3179],{},"トリミングしたい動画ほど「切り取りたい箇所」より「切り捨てたい箇所」が大きいものです。60 分の会議録画から 3 分を抽出する場合、",[30,3177,3178],{},"残りの 57 分分の機密発言もいったん相手サーバーにアップロードする","ことになります。",[11,3181,3182],{},"これはプライバシー観点で非合理的です。Zerosend はトリミング処理をローカルで行うため、アップロードそのものが発生しません。入力動画が数 GB あっても、ネットワークには何も流れません。",[23,3184,39],{"id":39},[41,3186,3187,3193,3196,3199,3201],{},[44,3188,3189,51],{},[17,3190,3191],{"href":409},[49,3192,409],{},[44,3194,3195],{},"動画をドラッグ&ドロップ",[44,3197,3198],{},"開始時刻・終了時刻を指定 (スライダーまたは秒数入力)",[44,3200,475],{},[44,3202,3203],{},"切り出された動画をダウンロード",[23,3205,91],{"id":91},[11,3207,483,3208,3210,3211,3213],{},[49,3209,486],{}," (開始) \u002F ",[49,3212,490],{}," (終了) オプションを使って指定区間を切り出します。",[69,3215,3216,3218,3224],{},[44,3217,2897],{},[44,3219,3220,3223],{},[49,3221,3222],{},"-ss \u003Cstart> -i input.mp4 -to \u003Cend> -c copy output.mp4"," で再エンコードなしに切り出し",[44,3225,3226,3229],{},[49,3227,3228],{},"-c copy"," によりロスレス抽出 (処理も高速)",[11,3231,3232],{},"再エンコードしないため、画質劣化なし・処理時間も入力サイズの数%程度で完了します。",[23,3234,134],{"id":134},[11,3236,3237,2936,3240,3242],{},[30,3238,3239],{},"Q. フレーム単位の精度は？",[49,3241,3228],{}," でキーフレーム境界に揃える仕様のため、GOP サイズに依存します。秒単位以上の精度が必要なら問題なく使えますが、フレーム単位の精度が必要な場合は本ツール内で再エンコードオプションを有効化できます (処理時間が増加)。",[11,3244,3245,3247],{},[30,3246,547],{},"\nA. 現状は 1 区間のみです。複数区間を扱う場合は 1 区間ずつ抽出後、別途結合ツールを使ってください。",[11,3249,3250,3253],{},[30,3251,3252],{},"Q. 音声も一緒に切り出される？","\nA. はい。映像と音声は同じ区間でセット抽出されます。",[11,3255,3256,2936,3259,3261,3262,3264],{},[30,3257,3258],{},"Q. 音声だけ切り出したい場合は？",[17,3260,396],{"href":395}," を使うか、本ツールで切り出した動画から音声だけを ",[17,3263,510],{"href":235}," で抽出してください。",[23,3266,171],{"id":171},[69,3268,3269,3274,3279],{},[44,3270,3271,3273],{},[17,3272,2954],{"href":2589}," — トリミング後にサイズ削減",[44,3275,3276,3278],{},[17,3277,2782],{"href":2781}," — 短い区間を GIF アニメに",[44,3280,3281,3283],{},[17,3282,403],{"href":402}," — 形式違いへの変換",{"title":192,"searchDepth":193,"depth":193,"links":3285},[3286,3287,3288,3289,3290],{"id":446,"depth":193,"text":446},{"id":39,"depth":193,"text":39},{"id":91,"depth":193,"text":91},{"id":134,"depth":193,"text":134},{"id":171,"depth":193,"text":171},"Zerosend の動画トリミングツールは、動画をサーバーに送らずブラウザ内で任意の区間だけ切り出します。不要な前後や長い会議録画から特定区間のみを共有したいときに。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fvideo-trim-intro",{"title":3160,"description":3291},"video-trim-intro","blog\u002Fvideo-trim-intro",[2816,607,220],"8zr5o8WM7ESnodQXy1hA-lSiHMRDYhYhAQP2mSkA4vQ",{"id":3300,"title":3301,"author":6,"body":3302,"category":204,"coverImage":204,"description":3435,"draft":206,"extension":207,"locale":208,"meta":3436,"navigation":210,"noindex":206,"path":3437,"publishedAt":3438,"seo":3439,"slug":3440,"stem":3441,"tags":3442,"updatedAt":3438,"__hash__":3444},"blog\u002Fblog\u002Ffavicon-generator-intro.md","ブラウザだけで作るファビコン一式 — \u002Ftools\u002Ffavicon-generator の舞台裏",{"type":8,"value":3303,"toc":3428},[3304,3307,3310,3317,3320,3323,3372,3376,3383,3386,3406,3413,3416,3419,3422],[23,3305,3306],{"id":3306},"背景",[11,3308,3309],{},"サイトのファビコンを更新する作業は、新規サイトでも既存サイトのリブランディングでも発生します。ロゴ画像 1 枚から必要なアイコンセットを揃えるのは地味に手間のかかる工程です。",[11,3311,3312,3316],{},[17,3313,3315],{"href":3314},"\u002Ftools\u002Ffavicon-generator","Zerosend のファビコン生成ツール"," は、この工程をブラウザ内で完結させます。ロゴ画像を外部に送らずに一式を作成できるので、NDA 下の受託案件や未公開のブランディング作業でも安心して使えます。",[23,3318,3319],{"id":3319},"何が出力されるか",[11,3321,3322],{},"1 枚の画像 (PNG \u002F JPG \u002F WebP \u002F SVG) から次の 9 ファイルを生成し、ZIP で配布します。",[69,3324,3325,3331,3342,3348,3357,3362],{},[44,3326,3327,3330],{},[49,3328,3329],{},"favicon.ico"," — 16 \u002F 32 \u002F 48px のマルチサイズ ICO",[44,3332,3333,487,3336,487,3339],{},[49,3334,3335],{},"favicon-16.png",[49,3337,3338],{},"favicon-32.png",[49,3340,3341],{},"favicon-48.png",[44,3343,3344,3347],{},[49,3345,3346],{},"apple-touch-icon.png"," (180×180)",[44,3349,3350,487,3353,3356],{},[49,3351,3352],{},"icon-192.png",[49,3354,3355],{},"icon-512.png"," (PWA)",[44,3358,3359],{},[49,3360,3361],{},"site.webmanifest",[44,3363,3364,3367,3368,3371],{},[49,3365,3366],{},"snippet.html"," — ",[49,3369,3370],{},"\u003Chead>"," に貼り付ける link タグ",[23,3373,3375],{"id":3374},"ico-を自前で書き出す","ICO を自前で書き出す",[11,3377,3378,3379,3382],{},"PNG は Canvas API で簡単に書き出せますが、ICO は少し工夫が必要です。とはいえ、Windows Vista 以降の ICO は ",[30,3380,3381],{},"PNG バイト列をそのまま埋め込める"," ため、意外と単純です。",[11,3384,3385],{},"構造:",[69,3387,3388,3394,3400],{},[44,3389,3390,3393],{},[30,3391,3392],{},"ICONDIR"," (6 バイト): reserved \u002F type \u002F image count",[44,3395,3396,3399],{},[30,3397,3398],{},"ICONDIRENTRY"," (16 バイト × 画像数): 幅 \u002F 高さ \u002F bpp \u002F サイズ \u002F オフセット",[44,3401,3402,3405],{},[30,3403,3404],{},"画像データ",": PNG のバイト列を順に連結",[11,3407,3408,3409,3412],{},"実装は依存ゼロで 30 行程度に収まります。",[49,3410,3411],{},"domain\u002Fprocessors\u002FfaviconGenerator.ts"," で実装を公開しています。",[23,3414,3415],{"id":3415},"検証の楽しさ",[11,3417,3418],{},"作ったあとは DevTools の Network タブで確認できます。画像選択 → 生成 → ダウンロードの全てで、あなたのロゴが外に出ないことを自分で検証できます。",[23,3420,3421],{"id":3421},"まとめ",[11,3423,3424,3425,958],{},"1 枚の画像から ICO \u002F PNG \u002F apple-touch-icon \u002F manifest \u002F HTML スニペットを、あなたの端末だけで生成できます。",[17,3426,3427],{"href":3314},"試してみてください",{"title":192,"searchDepth":193,"depth":193,"links":3429},[3430,3431,3432,3433,3434],{"id":3306,"depth":193,"text":3306},{"id":3319,"depth":193,"text":3319},{"id":3374,"depth":193,"text":3375},{"id":3415,"depth":193,"text":3415},{"id":3421,"depth":193,"text":3421},"1 枚の画像から ICO \u002F PNG \u002F apple-touch-icon \u002F site.webmanifest を生成するファビコン生成ツールを公開しました。ICO フォーマットを自前で書き出す実装のポイントを紹介します。",{},"\u002Fblog\u002Ffavicon-generator-intro","2026-04-19",{"title":3301,"description":3435},"favicon-generator-intro","blog\u002Ffavicon-generator-intro",[220,3443],"技術解説","j9H-wD4jISIIEFGU6QcADLgjb5CJ4w4V8exyY2whrb0",{"id":3446,"title":3447,"author":6,"body":3448,"category":204,"coverImage":204,"description":3517,"draft":206,"extension":207,"locale":208,"meta":3518,"navigation":210,"noindex":206,"path":3519,"publishedAt":3438,"seo":3520,"slug":3521,"stem":3522,"tags":3523,"updatedAt":3438,"__hash__":3525},"blog\u002Fblog\u002Fwelcome.md","Zerosend ブログを始めます",{"type":8,"value":3449,"toc":3511},[3450,3453,3456,3459,3462,3482,3485,3501,3503],[23,3451,3452],{"id":3452},"はじめに",[11,3454,3455],{},"Zerosend の公式ブログを開始します。このブログでは、プライバシーファーストな Web ツールを作る中で得た知見、ブラウザ内処理の技術、そしてデータを「送らない」という選択についての考察を記録していきます。",[23,3457,3458],{"id":3458},"扱うテーマ",[11,3460,3461],{},"主に次のテーマを扱います。",[69,3463,3464,3470,3476],{},[44,3465,3466,3469],{},[30,3467,3468],{},"ブラウザ内処理の技術",": WebAssembly、Web Worker、Canvas API、File System Access API の実用例",[44,3471,3472,3475],{},[30,3473,3474],{},"プライバシー設計",": CSP、アップロード不要のアーキテクチャ、Network タブで検証できる実装",[44,3477,3478,3481],{},[30,3479,3480],{},"各ツールの舞台裏",": 画像圧縮 \u002F PDF 編集 \u002F 動画変換 \u002F ファビコン生成などの内部実装",[23,3483,3484],{"id":3484},"更新頻度",[11,3486,3487,3488,3491,3492,487,3496,3500],{},"不定期ですが、ツールの追加・改善に合わせて更新します。記事の一覧は ",[17,3489,3490],{"href":3490},"\u002Fblog"," から、または ",[17,3493,3495],{"href":3494},"\u002Fblog\u002Ffeed.xml","RSS",[17,3497,3499],{"href":3498},"\u002Fblog\u002Ffeed.json","JSON Feed"," で購読できます。",[23,3502,3421],{"id":3421},[11,3504,3505,3506,3510],{},"まずはこの 1 本から。引き続き ",[17,3507,3509],{"href":3508},"\u002F","Zerosend"," のツール群もよろしくお願いします。",{"title":192,"searchDepth":193,"depth":193,"links":3512},[3513,3514,3515,3516],{"id":3452,"depth":193,"text":3452},{"id":3458,"depth":193,"text":3458},{"id":3484,"depth":193,"text":3484},{"id":3421,"depth":193,"text":3421},"ブラウザ内で完結するプライバシーファーストなオンラインツールを配信する Zerosend の公式ブログを開始します。扱うテーマと更新頻度について説明します。",{},"\u002Fblog\u002Fwelcome",{"title":3447,"description":3517},"welcome","blog\u002Fwelcome",[3524],"お知らせ","FVc0WPWmjeXo6BrnFdlDampwoyA6OVHbMm-JUXveuFc",{"id":3527,"title":3528,"author":6,"body":3529,"category":204,"coverImage":204,"description":3651,"draft":206,"extension":207,"locale":208,"meta":3652,"navigation":210,"noindex":206,"path":3653,"publishedAt":3438,"seo":3654,"slug":3655,"stem":3656,"tags":3657,"updatedAt":3438,"__hash__":3660},"blog\u002Fblog\u002Fwhy-browser-only.md","なぜ Zerosend はブラウザ内処理にこだわるのか",{"type":8,"value":3530,"toc":3644},[3531,3535,3538,3545,3548,3551,3578,3581,3584,3587,3598,3605,3608,3611,3631,3634,3636],[23,3532,3534],{"id":3533},"なぜ送らないのか","なぜ「送らない」のか",[11,3536,3537],{},"オンラインツールの多くはファイルをサーバーに送信して処理します。利便性は高いものの、ユーザーは自分のファイルがサーバー上でどう扱われるかを自分の目で確認できません。",[11,3539,3540,3541,3544],{},"Zerosend の設計原則はシンプルです。",[30,3542,3543],{},"「送らないのが一番確実」","。ファイルを外に出さなければ、ログも、漏洩も、第三者共有も原理的に存在しません。",[23,3546,3547],{"id":3547},"ブラウザ内処理で何ができるか",[11,3549,3550],{},"現代のブラウザは、かつてネイティブアプリが担っていた処理の多くを実行できます。",[69,3552,3553,3556,3559,3566],{},[44,3554,3555],{},"Canvas API による画像圧縮・リサイズ・形式変換",[44,3557,3558],{},"WebAssembly + ffmpeg による動画・音声の変換",[44,3560,3561,487,3563,3565],{},[49,3562,1514],{},[49,3564,96],{}," による PDF の結合・分割・ラスタライズ",[44,3567,3568,487,3571,487,3574,3577],{},[49,3569,3570],{},"File System Access API",[49,3572,3573],{},"Blob",[49,3575,3576],{},"URL.createObjectURL"," を介したダウンロード",[11,3579,3580],{},"これらは全てクライアントサイドで完結します。",[23,3582,3583],{"id":3583},"ユーザーが検証できる透明性",[11,3585,3586],{},"「送っていません」という主張は、ユーザーが自分で確認できなければ信用するしかありません。Zerosend はこれを自動検証できる形にしています。",[41,3588,3589,3592,3595],{},[44,3590,3591],{},"ブラウザで DevTools を開く",[44,3593,3594],{},"Network タブを開いたままツールを使う",[44,3596,3597],{},"処理中にアップロードらしきリクエストが出ないことを確認する",[11,3599,3600,3601,3604],{},"CDN や解析スクリプトへの最小限の通信は残りますが、",[30,3602,3603],{},"処理対象のファイル自体が HTTP リクエストのボディに乗らない","ことは目視で確認できます。",[23,3606,3607],{"id":3607},"制約もある",[11,3609,3610],{},"ブラウザ内処理は万能ではありません。",[69,3612,3613,3619,3625],{},[44,3614,3615,3618],{},[30,3616,3617],{},"ファイルサイズの上限",": メモリに載る範囲で処理する必要がある",[44,3620,3621,3624],{},[30,3622,3623],{},"初回ロードが重い",": ffmpeg.wasm は約 30MB の WASM を取得する",[44,3626,3627,3630],{},[30,3628,3629],{},"複雑な処理はサーバーが速い",": 大規模な機械学習推論はまだブラウザには重い",[11,3632,3633],{},"Zerosend は「日常的な軽作業をブラウザで完結させる」範囲に絞ることで、この制約の中で価値を出せるようにしています。",[23,3635,3421],{"id":3421},[11,3637,3638,3639,3643],{},"「送らない」は、透明性と検証可能性をユーザーに返す設計です。詳しい技術背景は ",[17,3640,3642],{"href":3641},"\u002Fguide\u002Fprivacy-online-tools","ピラー記事"," も参照してください。",{"title":192,"searchDepth":193,"depth":193,"links":3645},[3646,3647,3648,3649,3650],{"id":3533,"depth":193,"text":3534},{"id":3547,"depth":193,"text":3547},{"id":3583,"depth":193,"text":3583},{"id":3607,"depth":193,"text":3607},{"id":3421,"depth":193,"text":3421},"ファイルをサーバーにアップロードしない設計を選んだ理由と、ブラウザ内処理の利点・制約を整理します。DevTools の Network タブで自ら検証できる透明性について書きました。",{},"\u002Fblog\u002Fwhy-browser-only",{"title":3528,"description":3651},"why-browser-only","blog\u002Fwhy-browser-only",[3658,3659],"プライバシー","設計","lqogv5W41hd3KXZhnuHda2B25OSBrkZ2aRBaPDbdFhQ",1776723680424]