如何旋转由ashx处理程序检索的图像

时间:2013-12-09 22:28:41

标签: c# mysql asp.net

我有一张从MySql返回的图片。它的数据类型是Mysql中的图像。我用ashx处理图像。 下面的代码显示了我的ashx文件。

string imageID = context.Request.QueryString["imageID"];
using(SqlConnection objConnection = new SqlConnection(portalConnectionString))
{
    objConnection.Open();
    SqlCommand fetchTaskImageCMD = new SqlCommand("fetch_task_image", objConnection);
    fetchTaskImageCMD.CommandType = CommandType.StoredProcedure;
    fetchTaskImageCMD.Parameters.Add("@IMAGE_ID", SqlDbType.VarChar).Value = imageID;

    try
    {
        SqlDataReader dr = fetchTaskImageCMD.ExecuteReader();
        dr.Read();

        byte[] bufferImg = (Byte[])dr[0];

        context.Response.OutputStream.Write(bufferImg, 0, bufferImg.Length);
    }

    catch
    {
        System.Diagnostics.Debug.WriteLine("Image Handler Failed : /DesktopModules/ImageHandler.ashx");
    }

    objConnection.Close();
}

下面的代码显示了我如何从c#中的类后面的asp.net代码调用我的ashx文件。

protected void Page_Load(object sender, System.EventArgs e)
{
   FetchedImage.ImageUrl = "/DesktopModules/ImageHandler.ashx?imageType=" + imageType + "&imageID=" + imageID;
}

我的问题是如何旋转此图像并保存回数据库。

任何评论将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果要将其旋转并将其保存回数据库,请在服务器上使用GDI +,而不是将其重新传输回客户端。

System.Drawing.Image可以从字节数组中实例化,从中可以使用GDI +方法旋转图像,从旋转的图像中提取字节数组并保存。

如果您需要一个示例,请告诉我,但谷歌搜索System.Drawing.Image会帮助您。