gpt4 book ai didi

javascript - 从未压缩的原始 PNG 数据创建 PNG

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:59 25 4
gpt4 key购买 nike

我正在使用这个 Android Screenshot Library捕捉屏幕截图。我想在网络浏览器中显示此屏幕截图。

我在 PC 上编写了一个小型套接字应用程序,它连接到 Android 手机并将捕获的屏幕截图编码为 base64。

String base64 = Base64.getEncoder().encodeToString(bytes);

这个 base64 正在通过 websocket 发送到网页。下面是我的 html/JS 代码,它应该在 Canvas 上绘制图像。我已将 base64 图像数据存储在文本文件中以供测试。

<div style="background: aqua; width: 500px; height: 660px;">

<canvas style="width: 480px; height: 640px;" id="sim">
</canvas>
</div>

<script type="text/javascript">
var ctx;
var width = 480;
var height = 640;

(function start() {
ctx = document.getElementById("sim").getContext("2d");
loadFromFile();
})();

function loadImage(data) {

var image = new Image();
image.onload = function() {
//this part never executes
ctx.drawImage(image, 0, 0);
console.log("images loaded!");
}

image.src = "data:image/png;base64," + data;
}

function loadFromFile() {
//please get data from **https://app.box.com/s/e19ww51fd37h4sy8getjnag31ud6tpp9**
var file = "imagefile.txt";

var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, true);

rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4) {
if (rawFile.status === 200 || rawFile.status == 0) {
var data = rawFile.responseText;
console.log("data loaded: " + data.length);

loadImage(data);
}
}
}
rawFile.send(null);
}
</script>

为方便起见,这里是JsFiddle相同的代码。

请指出正确的算法,了解如何从未压缩的原始数据生成 PNG。代码示例会很棒 ;)

谢谢

最佳答案

public static String encodeTobase64(Bitmap image)
{
Bitmap immagex=image;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
immagex.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT);

Log.e("LOOK", imageEncoded);
return imageEncoded;
}

public static Bitmap decodeBase64(String input)

{
byte[] decodedByte = Base64.decode(input, 0);
return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length); }

关于javascript - 从未压缩的原始 PNG 数据创建 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31782567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com