如何保存客户端生成的 asp:image 元素
How to Save Asp:Image Element Generated on the Client Side
我正在使用JQuery插件(ScriptCam)来允许用户从网络摄像头拍摄快照。
这是我使用 JS 代码的按钮:
<asp:Button ID="btnTakeSnapshot" runat="server" Text="Take SS" OnClientClick="base64_toimage(); return false;" />
JS代码:
function base64_toimage() {
document.getElementById('<%= imgBinary.ClientID %>').src = "data:image/png;base64," + $.scriptcam.getFrameAsBase64();
document.getElementById('<%= txtImgBinary.ClientID %>').value = $.scriptcam.getFrameAsBase64();
};
用户单击后,快照将绑定到以下Asp:Image
元素:
<asp:Image ID="imgBinary" runat="server" Width="160" Height="120" />
我还为此Asp:TextBox
编写二进制代码:
<asp:TextBox ID="txtImgBinary" TextMode="MultiLine" runat="server"></asp:TextBox>
在这里,我想做的是在用户拍摄快照并单击最后一个"保存"按钮后,我将二进制代码从txtImgBinary.Text
值保存到 SQL Server 中的image column
。我也这样做了,一切都很好。
但是在我将数据库中的二进制值绑定到另一个页面后,它不起作用。我是这样做的:
imgUserPhoto.Attributes.Add("src", "data:image/png;base64," + binaryCodeFromDB);
我还尝试在Winforms
PictureBox
元素中使用相同的二进制代码,但我得到了Argument Exception: Parameter is not valid
错误。
从昨天开始,我一直在尝试这样做。
所以我想也许我保存二进制数据的方式有问题。因为我将文本框用作空玻璃杯,所以在我复制到文本框并稍后从中复制时,二进制代码可能会发生变化。
此外,我以这种方式保存的图像具有与另一个工作组件的图像二进制数据不同的二进制数据。
所以我想知道有没有办法在我用 JS 绑定它的src
属性后将此图像保存到服务器?如果我可以保存此图像,我将使用临时.jpg图像,然后稍后将生成其二进制代码。
提前谢谢。
我没有弄错以错误的方式保存代码的可能性。
通常,我将base64
数组克隆到文本框,然后将文本框中的值复制到图像列。
可惜我没有意识到byte64
数组与byte[]
数组不同。
因此,在保存此值之前,我进行了以下小对话:
byte[] bytes = Convert.FromBase64String(txtImgBinary.Text);
然后,我将这个bytes
数组存储在我的数据库中。现在它工作正常。
<小时 />对于那些感兴趣的人,以下是我稍后如何使用此值:
(对于Asp:Image
元素)
Image1.Attributes.Add("src", "data:image/png;base64," + Convert.ToBase64String(bytesValueFromDB));
(对于Winforms PictureBox
元素)
MemoryStream stream = new MemoryStream(bytesValueFromDB);
System.Drawing.Image tempImage = System.Drawing.Image.FromStream(stream);
string FName = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"'tempImage.jpg";
tempImage.Save(FName);
imageFileName = FName;
ctlPictureBox.ImageLocation = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"'tempImage.jpg";
- ASP Page_Load元素值为null
- 为什么在ASP.NET Ajax更新面板中执行任何操作后javascript元素都停止工作
- ASP Page + JavaScript:如何隐藏元素并获取其真实位置
- get元素的两个类asp.net MVC
- 我们如何使用Jquery和ASP.NET MVC 4复杂模型数据设置HTML元素的值
- 通过javascript访问中继器中的asp元素
- 当我点击一个asp表元素时,我如何制作一个自定义弹出窗口
- 如何保存客户端生成的 asp:image 元素
- 即时创建 Asp.Net 元素 Javascript
- 如何通过 JavaScript 取消隐藏隐藏的 asp 元素
- 不读取 while 循环中表单元素第一次迭代 ASP.NET
- asp.net 高度属性的元素样式问题
- Javascript 禁用作为 asp.net 控件加载的元素的内联单击
- 在 asp.net 中设置表单元素默认值
- 在asp中使用jquery查找元素
- 验证失败 ASP.NET - 显示的元素会更改可见性
- 从数据表重新加载 javascript 数据元素 asp.net 而不重新加载页面
- 将ASP.NET元素传递给JavaScript函数
- 如何在回发后保持对asp文本框或任何html元素的关注)
- ASP.NET-回发后保留HTML元素的样式