Closed11

『5分講和」ReactComponentを画像にしてみるぞ

10tera10tera

最小構成で組んでみた

"use client";
import { useToPng } from "@hugocxl/react-to-image";

export default function Home() {
  const [state, convert, ref] = useToPng<HTMLDivElement>({
    onSuccess: (data) => {
      const link = document.createElement("a");
      link.download = "convertImg.png";
      link.href = data;
      link.click();
    },
  });

  return (
    <div>
      <h1>test next js app</h1>
      <div
        style={{
          width: "200px",
          height: "fit-content",
          border: "4px solid red",
        }}
        ref={ref}
      >
        <h2>title</h2>
        <button
          style={{
            width: "100px",
            height: "40px",
            backgroundColor: "white",
            border: "4px solid blue",
            borderRadius: "12px",
          }}
        >
          button
        </button>
      </div>
      <button type="button" onClick={convert}>
        convert
      </button>
    </div>
  );
}

10tera10tera

画像変換したいコンポーネントのrefを渡して、関数を呼び出すだけで動くらしい

10tera10tera

サイトはこんな感じ。convertを押すと画像がダウンロードされる
refは赤線borderのdivに渡している

10tera10tera

親要素の端っこにはなるべく何かしらの色をつけといた方が良さそう?

10tera10tera

canvasとか複雑な要素もconvertできるのか試してみたいね

10tera10tera

もっと頻繁に更新されているライブラリないかな〜
(ないなら自分で作るしかないのかなぁ〜)

このスクラップは5ヶ月前にクローズされました