问题描述
如题,有解决方法没,我想实现System.Web.UI.WebControls.Image和usingSystem.Drawing.image的互转
解决方案
解决方案二:
System.Web.UI.WebControls.Image是控件,通过属性url显示的是图片的指向。System.Drawing.image是图像一般使用方式是通过System.Web.UI.WebControls.Image控件指向一个ashx或者aspx页面,ashx或aspx刷出image。两个不能直接互转。
解决方案三:
这两者不是一个东西,怎么互转呢……你应该是用一个aspx或者ashx或者其它来作为System.Drawing.Image的显示载体,然后System.Web.UI.WebControls.Image将Url指向该aspx或ashx
解决方案四:
引用2楼starfd的回复:
这两者不是一个东西,怎么互转呢……你应该是用一个aspx或者ashx或者其它来作为System.Drawing.Image的显示载体,然后System.Web.UI.WebControls.Image将Url指向该aspx或ashx
我现在要截图。。然后需要把System.Web.UI.WebControls.Image转换成usingSystem.Drawing.image这个图片路径是blob:http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683不能让流去读取啊。。给个思路呗、/、
解决方案五:
引用1楼guwei4037的回复:
System.Web.UI.WebControls.Image是控件,通过属性url显示的是图片的指向。System.Drawing.image是图像一般使用方式是通过System.Web.UI.WebControls.Image控件指向一个ashx或者aspx页面,ashx或aspx刷出image。两个不能直接互转。
这些都知道,,主要是要截取图片就要用到System.Drawing.image啊
解决方案六:
你给了一个本地测试路径打不开的啊……blob:http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683这个看不懂什么意思啊,blob是oracle的数据类型,后面有个冒号,冒号后面又是一个url
解决方案七:
难道你这个是要做图片加载后按比例截取此图片的一部分?
解决方案八:
引用6楼starfd的回复:
难道你这个是要做图片加载后按比例截取此图片的一部分?
是的
解决方案九:
引用5楼starfd的回复:
你给了一个本地测试路径打不开的啊……blob:http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683这个看不懂什么意思啊,blob是oracle的数据类型,后面有个冒号,冒号后面又是一个url
代码是这样写的functionsetImagePreview(avalue){vardocObj=document.getElementById("fileField");alert("a");if(docObj.files&&docObj.files[0]){//火狐下,直接设img属性//imgObjPreview.src=docObj.files[0].getAsDataURL();//火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式vart=window.URL.createObjectURL(docObj.files[0]);alert(t);location.href="Accountsettings.aspx?Url="+t;}else{//IE下,使用滤镜docObj.select();varimgSrc=document.selection.createRange().text;varlocalImagId=document.getElementById("localImag");//必须设置初始大小localImagId.style.width="150px";localImagId.style.height="180px";//图片异常的捕捉,防止用户修改后缀来伪造图片try{localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src=imgSrc;}catch(e){alert("您上传的图片格式不正确,请重新选择!");returnfalse;}imgObjPreview.style.display='none';document.selection.empty();}returntrue;}复制过来改了一些东西。。。
解决方案十:
原来怎么从blob取出数据转化成Image截图时还是这么做,后面再参考上面的AdjImageToFitSize方法
解决方案十一:
就是点击确定后就截图
解决方案十二:
首先你要在你的浏览器上确定http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683这种地址能不能直接显示图片,并且另存为图片文件。
解决方案十三:
引用11楼sp1234的回复:
首先你要在你的浏览器上确定http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683这种地址能不能直接显示图片,并且另存为图片文件。
可以直接显示图片的,另存就不知道了
解决方案十四:
引用11楼sp1234的回复:
首先你要在你的浏览器上确定http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683这种地址能不能直接显示图片,并且另存为图片文件。
在页面上也可以存的
解决方案十五:
引用2楼starfd的回复:
这两者不是一个东西,怎么互转呢……你应该是用一个aspx或者ashx或者其它来作为System.Drawing.Image的显示载体,然后System.Web.UI.WebControls.Image将Url指向该aspx或ashx
我想实现这样的方式,你看看行不行,地址栏的图片是jpg形式的,先从地址栏读取图片流然后生成System.Drawing.Image的图,然后直接截图,然后保存截图,你看看这样行不行
解决方案:
我9L给你的回复就是这样子的啊……不过不是从地址栏读取图片,而是你原来怎么显示的图片的就还是怎么读取
解决方案:
引用15楼starfd的回复:
我9L给你的回复就是这样子的啊……不过不是从地址栏读取图片,而是你原来怎么显示的图片的就还是怎么读取
不能用流的方式读取http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683他会报这个错
解决方案:
你这个夸张了,http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683这个地址不就是你自己写的后台读取数据流显示成图片么?你把那段读取成Image的代码拿来用就可以了,干嘛要通过这个地址来读取成Image?
解决方案:
引用17楼starfd的回复:
你这个夸张了,http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683这个地址不就是你自己写的后台读取数据流显示成图片么?你把那段读取成Image的代码拿来用就可以了,干嘛要通过这个地址来读取成Image?
我想把他再变成流,,,再通过流转换成usingSystem.Drawing.image
解决方案:
就是说如何把http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683这个地址重新转成流,,生成的时候是用的js出来的,是我复制过来的,,转换就不知道了引用17楼starfd的回复:
你这个夸张了,http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683这个地址不就是你自己写的后台读取数据流显示成图片么?你把那段读取成Image的代码拿来用就可以了,干嘛要通过这个地址来读取成Image?
解决方案:
参考随机截取图片一部分:(本例是截取一部分作为验证码背景图)
解决方案:
如果你确定你的url是一个静态图片(换一个机器的浏览器也可以直接打开),可以在浏览器上“另存为图片”(不需要什么权限),那么你就可以直接获取byte[],例如byte[]data=newWebClient().DownloadData("http://avatar.csdn.net/1/8/D/1_sp1234.jpg");
或者byte[]data=newWebClient().DownloadData("http://localhost:20373/dfa9ad16-87c8-42c0-b238-89cc16488683");
但是,在设计成一个自动化程序时,你需要自动化地取得url,而不要手工获取url。