3

次のような dataurl 形式の画像があります。

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwME…iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2Q== 

この文字列を JavaScript で別の文字列に変換し、空の jpg ファイルに直接コピーして、ユーザーが表示できるようにする必要があります。
これを達成する方法はありますか?

4

4 に答える 4

1

それを表示するには、src 属性を使用できます。

<img src="data:image/png;base64,R0lGODlhUAAPAKIAAA+g4JADs=" width="80" height="80" />

ファイルを生成するには、canvas 要素を使用する必要があります。

例:

<html>
    <head></head>
    <body>
        <canvas id="c"></canvas>
        <script type="text/javascript" src="canvas2image.js"></script>
        <script type="text/javascript" src="baseg4.js"></script>
        <script type="text/javascript">

            var canvas = document.getElementById("c");
            var ctx = canvas.getContext("2d");

            var image = new Image();
            image.src = "data:image/png;base64,iVBORw0KG............5CYII%3D";
            image.onload = function()
            {
               ctx.drawImage(image, 0, 0);
                var foo = Canvas2Image.saveAsPNG(canvas);  
            };
            var img = canvas.toDataURL("image/png");
        </script>
    </body>
</html>

画像などを保存します...このリンクでキャンバスをファイルに変換する方法を見つけることができます:

// http://www.nihilogic.dk/labs/canvas2image/

編集:新しいリンクだと思います... https://github.com/hongru/canvas2image

于 2013-03-28T06:00:08.210 に答える
1

ユーザーがファイルをダウンロードして自分のコンピューターのどこかに保存できるようにするには、次のようにします。

document.location.href = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB…";

これがあなたがしようとしているものである場合は、データ URL ファイルのダウンロードを参照してください。

于 2013-03-28T06:26:39.950 に答える
0

から削除data:image/jpeg;base64,してdataURIデコードする必要がありdataURIます:

public void saveImage(String imageURI) {
    BufferedImage image = null;
    String blobString=imageString.replace("data:image/jpeg;base64,", "");
    byte[] byteArray = Base64.getDecoder().decode(blobString);
    ByteArrayInputStream bis = new ByteArrayInputStream(byteArray);
    try {
        image = ImageIO.read(bis);
        File file = new File("/home/rakesh/Vinay/a.jpeg");
        ImageIO.write(image, "jpeg", file);
    } catch (IOException e) {
        e.printStackTrace();
    }
}
于 2020-04-06T06:19:18.160 に答える