gpt4 book ai didi

jQuery ajax 从 webapi 2 加载二进制图像

转载 作者:行者123 更新时间:2023-12-01 03:39:05 25 4
gpt4 key购买 nike

我有一个问题,当我调用 API 来获取图像时,我得到的是二进制图像。我想是的...

ImageConverter imageConverter = new ImageConverter();

byte[] resourceByteArray = (byte[])imageConverter.ConvertTo(_Obj.GetImage(), typeof(byte[]));

MemoryStream dataStream = new MemoryStream(resourceByteArray);
response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(dataStream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/" + parameters.ImageFormat);

前端代码。

$("#formoid").submit(function (event) {

/* stop form from submitting normally */
event.preventDefault();

/* get some values from elements on the page: */
var $form = $(this),
url = $form.attr('action');
/* Send the data using post */
var posting = $(this).serialize();

$.ajax({
type: "POST",
url: url,
data: posting
}).done(function (data) {
$('#output').html('<img src="data:image/PNG;base64' + data + '" />');
});
});

最终结果是:

<img src="data:image/PNG;base64�PNG

���
IHDR�����@��������sRGB�������gAMA���� �a��� pHYs�������o�d����IDATx^���W��}�}��s�{�s���g�t��epww��N ��I � �@�@�]�'F���o���ݫv�������&lt;�g�k������Uk��k���P� �+��eˢT�R��`��%J�p�¾��\��`pGƪ\ k0\i��!%0���`�

最佳答案

为了使用<img src="data:image/PNG;base64' base64部分是因为您需要返回 Base64字符串而不是字节数组,因此您需要转换 byte[]到 64Base 使用:Convert.ToBase64String(buffer)

因此以您的代码为例:

ImageConverter imageConverter = new ImageConverter();
byte[] resourceByteArray = (byte[])imageConverter.ConvertTo(_Obj.GetImage(), typeof(byte[]));

您的 WebApi 方法应该返回:

return Convert.ToBase64String(resourceByteArray);

关于jQuery ajax 从 webapi 2 加载二进制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25835166/

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