菜鸟求教!asp.net图像处理问题

xmanvictor 2006-04-24 10:05:38
请看下列程序:将多个tif图像合并生成一个pdf文档,运用了itextsharp组件
——————tif2bdf————————
<%@ Page language="c#" Codebehind="tiff2pdf.aspx.cs" AutoEventWireup="false" Inherits="zhl.tiff2pdf" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>tiff2pdf</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 56px; POSITION: absolute; TOP: 56px" runat="server"></asp:Label>
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 64px; POSITION: absolute; TOP: 80px" runat="server"
Text="tif2pdf"></asp:Button>
<asp:Label id="Label2" style="Z-INDEX: 103; LEFT: 344px; POSITION: absolute; TOP: 96px" runat="server"></asp:Label>
<asp:Label id="Label3" style="Z-INDEX: 104; LEFT: 344px; POSITION: absolute; TOP: 144px" runat="server"></asp:Label></FONT>
</form>
</body>
——————————————————————————

——————————tif2bdf.aspx.cs——————————
using System;

using System.IO;

using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
//using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

using System.Drawing.Imaging;
using iTextSharp.text;
using iTextSharp.text.pdf;


namespace zhl
{
/// <summary>
/// tiff2pdf 的摘要说明。
/// </summary>
public class tiff2pdf : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Button Button1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Response.Write("tiff to pdf");
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void Button1_Click(object sender, System.EventArgs e)
{
string [] path={@"D:\1.tif",@"D:\2.tif",@"D:\3.tif"};//请注意,路径是本地硬盘路径!!
//int end=0;
// creation of the document with a certain size and certain margins
Document document = new Document(PageSize.A4, 0, 0, 0, 0);
//Document.compress = false;
try
{
// creation of the different writers
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"D:\pdf\Chap0611.pdf", FileMode.Create));

System.Drawing.Bitmap bm;
PdfContentByte cb;
int total;

document.Open();
for(int i=0;i<3;i++)
{
bm = new System.Drawing.Bitmap(path[i]);//其中path[i]是本地硬盘的路径
total = bm.GetFrameCount(FrameDimension.Page);

cb = writer.DirectContent;
Label2.Text=total.ToString();
for (int k = 0; k < total; ++k)
{
bm.SelectActiveFrame(FrameDimension.Page, k);
Image img = Image.GetInstance(bm, null, true);
//img.ScalePercent(72f / 200f * 100);
img.ScalePercent(58f / 200f * 100);
img.SetAbsolutePosition(0, 0);
Label3.Text+="Image: " + k+"|";
cb.AddImage(img);
document.NewPage();
}
}
document.Close();
}
catch (Exception de)
{
Label1.Text += de.Message;
Label1.Text += de.StackTrace;
}

}
}
}
——————————————————————————————
上边的东西提供给大家,不过不看也罢,问题就是:
bm = new System.Drawing.Bitmap(@"D:\1.tif");
如果,我需要的图片来自于网络,比如,我需要的tif文件来自于http:\\www.xxxxx.com\1.tif
那我该怎么用程序进行处理阿?
bm = new System.Drawing.Bitmap("http:\\www.xxxxx.com\1.tif");肯定是不行的,那该怎么办呢?
难道要先下载下来再进行处理吗?那样这样的程序做网络版直接就没用了,郁闷阿!
该怎么样才能直接通过网络的路径来进行初始化bm呢,或者有什么更好的办法,希望大虾们指点一下阿!请给出示例代码。
大家帮忙顶一下好吗!
...全文
168 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xmanvictor 2006-04-26
奥,试验下,还有好办法吗~~呵呵
  • 打赏
  • 举报
回复
Hope_sys 2006-04-25
bm = new System.Drawing.Bitmap(@"http:\\www.xxxxx.com\1.tif"); 应为不支持uri格式,所以不能用

以下是 vb.net的函数,和楼上的一样哦
Private Function CreateBitmap(ByVal url) As System.Drawing.Bitmap
Dim req As System.Net.HttpWebRequest = System.Net.WebRequest.Create(url)
Dim res As System.Net.HttpWebResponse = Nothing
Dim img As System.Drawing.Bitmap = Nothing
Try
res = req.GetResponse()
img = New Bitmap(res.GetResponseStream())
Catch ex As Exception
img = Nothing
Finally
If Not (res Is Nothing) Then res.Close()
End Try
Return img
End Function
  • 打赏
  • 举报
回复
sugarsupper 2006-04-24
bm = new System.Drawing.Bitmap("http:\\www.xxxxx.com\1.tif");肯定是不行的
怎么不行?那就读吧
private Bitmap CreateBitmap()
{
HttpWebRequest req=(HttpWebRequest)WebRequest.Create(url);
HttpWebResponse res=null;
Bitmap img=null;
try
{
res=(HttpWebResponse)req.GetResponse();
img=new Bitmap(res.GetResponseStream());
}
catch
{
img=null;
}
finally
{
if(res!=null)
res.Close();
}
return img;
}
  • 打赏
  • 举报
回复
RexZheng 2006-04-24
让程序去读取那张图片。
可以用WebClient
  • 打赏
  • 举报
回复
xmanvictor 2006-04-24
帮帮忙阿各位大虾,谢谢了。
  • 打赏
  • 举报
回复
xmanvictor 2006-04-24
不用看源程序,弄上多余了,郁闷,大家帮帮忙啊!
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

6.0w+

社区成员

.NET技术交流专区
社区管理员
  • ASP.NET
  • R小R
  • 喵叔哟
帖子事件
创建了帖子
2006-04-24 10:05
社区公告

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

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