gpt4 book ai didi

java - 如何从富文本压缩和调整图像大小

转载 作者:行者123 更新时间:2023-11-30 17:04:15 25 4
gpt4 key购买 nike

我正在使用这个插入图片

var readFileIntoDataUrl = function (fileInfo) {
var loader = $.Deferred(),
fReader = new FileReader();
fReader.onload = function (e) {
loader.resolve(e.target.result);
};
fReader.onerror = loader.reject;
fReader.onprogress = loader.notify;
fReader.readAsDataURL(fileInfo);
return loader.promise();
};


$.when(readFileIntoDataUrl(fileInfo)).done(function (dataUrl) {
execCommand('insertimage', dataUrl);
}).fail(function (e) {
options.fileUploadError("file-reader", e);
});

假设我添加了文本 Hello World 并添加了图像。现在,当我使用 $("#editor").html() 时,它会显示如下内容

这是一个图像+文本的示例源

Hello World!
img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgA
BAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAA
AQAAAGAAAAABUGFpbnQuTkVUIHYzLjUuOAAA/9sAQwAHBQUGBQQHBgUGCAcHCAoRCwoJCQoVDxAMERgV
[... more base64 data here....]

现在这里我有 text+image 所以在服务器端和客户端我都想调整和压缩图像

这样就没有人可以插入 > 5MP 的图片,并在我的数据库中保留带有调整大小图片的富文本

最佳答案

这是在服务器端 (Java) 执行此操作的方法:

    String imageData = "Hello World! img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoR...";

//Image data starting point
int startIndex = imageData.indexOf(";base64,") + ";base64,".length();

//keep only the image data
imageData = imageData.substring(startIndex, imageData.length());

//convert the image data String to a byte[]
byte[] dta = DatatypeConverter.parseBase64Binary(imageData);
try (InputStream in = new ByteArrayInputStream(dta);) {
BufferedImage fullSize = ImageIO.read(in);

// Create a new image half the size of the original image
BufferedImage resized = new BufferedImage(fullSize.getWidth() / 2, fullSize.getHeight() / 2, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2 = (Graphics2D) resized.getGraphics();
g2.drawImage(fullSize, 0, 0, resized.getWidth(), resized.getHeight(), 0, 0, fullSize.getWidth(), fullSize.getHeight(), null);
g2.dispose();
} catch (IOException e) {
e.printStackTrace();
}

至于 JavaScript 部分,您可以使用 canvas ,将 Canvas 调整为您想要的尺寸,在其上绘制图像并使用 toDataURL将图像转换为 String

的方法

关于java - 如何从富文本压缩和调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28305386/

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