不知道怎么问,请高手进

luoboqian 2009-02-10 05:59:35
请问用.net怎么实现以下html代码提交的时候把印在上面的图片和低下图片综合成一张图片,现在只是当鼠标点一下就把上面的图定位在底图的上面,如果用gdi的话究竟是该怎么得到?是记住上面的小图的位置然后传给后台重新画吗?
请高手指点一下

<HTML>
<HEAD>
<TITLE></TITLE>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="/images/style2.css" rel=stylesheet>
<link href="/style/MainCss.css" type="text/css" rel="stylesheet">
<STYLE>
BODY {
BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; BACKGROUND: #efedde; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px
}
FIELDSET {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px
}
FORM {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px
}
SELECT {
FONT-SIZE: 12px; FONT-FAMILY: ms shell dlg
}
INPUT {
FONT-SIZE: 12px; FONT-FAMILY: ms shell dlg
}
TD {
FONT-SIZE: 12px; FONT-FAMILY: ms shell dlg
}
A {
FONT-SIZE: 12px; TEXT-TRANSFORM: none; COLOR: #000000; TEXT-DECORATION: none
}
A.white {
FONT-SIZE: 12px; COLOR: #ffffff; TEXT-DECORATION: underline
}
A.line {
FONT-SIZE: 12px; TEXT-DECORATION: none
}
A:hover {
COLOR: red; TEXT-DECORATION: none
}
A:visited {
TEXT-TRANSFORM: none; TEXT-DECORATION: none
}
A.ablack {
FONT-SIZE: 12px; TEXT-TRANSFORM: none; COLOR: black; TEXT-DECORATION: none
}
#mailview {
BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 100%; BORDER-BOTTOM: 0px; POSITION: relative; TOP: 0px; HEIGHT: 100%
}
</STYLE>

<script language="javascript">
window.onresize = fixMessageViewerSize;

function fixMessageViewerSize() {
var f = document.getElementById("viewarea");
f.style.height = Math.max(document.body.clientHeight - f.offsetTop, 0);
if(document.all){
sh=document.body.offsetHeight
sw=document.body.offsetWidth
}
else{
sh=self.innerHeight
sw=self.innerWidth
}

}
</script>
<SCRIPT language="javascript">
var x,y; //声明存放当前鼠标位置坐标的变量
var can=0; //声明能否移动的控制变量
var i=1;
var jj=1;
function canmove() { //控制能否移动的函数
x=document.body.scrollLeft+event.clientX; //获取当前鼠标位置的X坐标
y=document.body.scrollTop+event.clientY; //获取当前鼠标位置的Y坐标
can=1;} //设置为可以移动
function move() { //移动图层的函数
if (can) {
div1.style.display="";
div1.style.posLeft=x+20; //设置图层位置的X坐标
div1.style.posTop=y;} // 设置图层位置的Y坐标
setTimeout("move()",30);
} //每30毫秒刷新一次图层位置坐标
function confirm(){
jj = document.form1.imagenum.value;
x=document.body.scrollLeft+event.clientX; //获取当前鼠标位置的X坐标
y=document.body.scrollTop+event.clientY;
if(y%1143>1080 || x>780){
alert("章的位置超边界了");
return;
}
jj++;
if(jj>document.form1.imagesum.value)
return false;
eval("div"+(jj)).style.display="";
eval("div"+(jj)).style.posLeft=x+20;
eval("div"+(jj)).style.posTop=y;
document.form1.imagenum.value =jj;
document.form1.zuobiao.value=document.form1.zuobiao.value+(x+20)+";"+(y-20)+" ";
}
function chap_confirm(){
document.form1.submit();

}


</SCRIPT>
</HEAD>
<BODY scroll="yes" onload="move()" onmousemove="canmove()" onclick="confirm()">

<div id="div1" style="position:absolute; left:250px; top:118px; display: none;"><img src="20090209_1822.gif" onload="div1.style.display='';this.width=this.width;div1.style.display='none';"></div>

<div id="div2" style="position:absolute; left:250px; top:118px; display: none;"><img src="20090209_1822.gif" onload="div2.style.display='';this.width=this.width;div2.style.display='none';"></div>

<div id="div3" style="position:absolute; left:250px; top:118px; display: none;"><img src="20090209_1822.gif" onload="div3.style.display='';this.width=this.width;div3.style.display='none';"></div>

<div id="div4" style="position:absolute; left:250px; top:118px; display: none;"><img src="20090209_1822.gif" onload="div4.style.display='';this.width=this.width;div4.style.display='none';"></div>

<div id="div5" style="position:absolute; left:250px; top:118px; display: none;"><img src="20090209_1822.gif" onload="div5.style.display='';this.width=this.width;div5.style.display='none';"></div>

<div id="div6" style="position:absolute; left:250px; top:118px; display: none;"><img src="20090209_1822.gif" onload="div6.style.display='';this.width=this.width;div6.style.display='none';"></div>

<form name="form1" method="post" action="Fax!chapdo.action">
<tr>
<div align="left">
<input type="button" name="comfirm" value="盖章完毕" class="button" onClick="chap_confirm();"/>
</div>
</tr>
<span id="viewarea" >
<table>

<TR>
<td>
<image align="center" src="1_0fax-1234145992593.jpg">
</td>
</TR>


</table>
</span>


<INPUT type="hidden" name="imagenum" value="1">
<input type="hidden" name="imagesum" value="6">
<input type="hidden" name="imageid" value="3042">
<input type="hidden" name="zuobiao" value="">
<INPUT type="hidden" name="image_height" value="1100">
<input type="hidden" name="chap_width" value="">
<input type="hidden" name="chap_heit" value="">

</form>
</BODY>

</HTML>

...全文
81 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lacsky 2009-02-10
  • 打赏
  • 举报
回复
chengdishuai 2009-02-10
  • 打赏
  • 举报
回复

大体方法是这样的

C# code /// <summary>
/// 合成图片
/// </summary>
/// <param name="basePath">背景图片地址</param>
/// <param name="addPath">添加图片地址</param>
/// <param name="newPath">新图片地址</param>
public void MergeImage(string basePath, string addPath,string newPath)
{
Image image = Image.FromFile(basePath)…
CutBug 2009-02-10
  • 打赏
  • 举报
回复
调用
string p1 = "d:\\底部.jpg";
string p2 = "d:\\logo.gif";
string p3 = "d:\\new.jpg";
MergeImage(p1, p2,p3);
CutBug 2009-02-10
  • 打赏
  • 举报
回复
大体方法是这样的
 /// <summary>
/// 合成图片
/// </summary>
/// <param name="basePath">背景图片地址</param>
/// <param name="addPath">添加图片地址</param>
/// <param name="newPath">新图片地址</param>
public void MergeImage(string basePath, string addPath,string newPath)
{
Image image = Image.FromFile(basePath);
Image addImage = Image.FromFile(addPath);
Graphics g = Graphics.FromImage(image);
g.DrawImage(addImage, new Rectangle( //Rectangle的参数,你可以通过前台获得,放到hidden控件里传到后台
10,
10,
addImage.Width,
addImage.Height), 0, 0,
addImage.Width, addImage.Height,
GraphicsUnit.Pixel);
g.Dispose();
image.Save(newPath);
image.Dispose();
}



Rectangle(10,10,addImage.Width, addImage.Height),10,10是你加上去的图片,相对于底部图片左上角点的坐标
Fibona 2009-02-10
  • 打赏
  • 举报
回复
要GDI那就得到你点击原图的位置,坐标,然后将新图在原来的图片上重画一下,然后保存,类似于图片水印,原图+新图进行合并
8992026 2009-02-10
  • 打赏
  • 举报
回复
帮顶

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧