代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C#
】
读取数据库图片显示、缩小、更新
作者:
ailsa
/ 发布于
2016/8/4
/
716
ashx源文件代码: <%@ WebHandler Language="C#" Class="GetThumbnailImageByEmpCode" %> using System; using System.Web; using System.Data.SqlClient; using System.Data; using System.Drawing; using System.Drawing.Drawing2D; using System.IO; using System.Drawing.Imaging; public class GetThumbnailImageByEmpCode : IHttpHandler { public void ProcessRequest(HttpContext context) { if (context.Request.QueryString["code"] == null) { return; } int newWidth = 336; //目标图片宽度 int newHeight = 252; //目标图片高度 bool bNeedUpdate = false; //是否需要更新数据库 System.Drawing.Image Img; using (SqlConnection conn = new SqlConnection(db.ConnectionStrings.hrConnectionString)) using (SqlCommand cmd = new SqlCommand("", conn)) { cmd.CommandText = "select photo from ZlEmployee where code=@code and DATALENGTH(photo)>1000"; cmd.Parameters.AddWithValue("code", context.Request.QueryString["code"]); conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { byte[] imgData = (byte[])reader[0]; reader.Close(); using (MemoryStream ms = new MemoryStream(imgData)) { Img = System.Drawing.Image.FromStream(ms); } if (Img.Width > newWidth || Img.Height > newHeight) { Img = reSizeImage(Img); bNeedUpdate = true; } using (MemoryStream ms = new MemoryStream()) { #region 输出图片到浏览器 Bitmap jpg = new Bitmap(Img); jpg.Save(ms, ImageFormat.Jpeg); context.Response.Clear(); context.Response.Charset = "utf-8"; context.Response.ContentType = "image/pjpeg"; context.Response.BinaryWrite(ms.ToArray()); #endregion //检查是否需要更新 if (bNeedUpdate) { cmd.CommandText = "update ZlEmployee set photo=@photo where code=@code"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("code", context.Request.QueryString["code"]); cmd.Parameters.AddWithValue("photo", ms.ToArray()); cmd.ExecuteNonQuery(); } } context.Response.End(); } } } public System.Drawing.Image reSizeImage(System.Drawing.Image img) { int newWidth = 336; int newHeight = 252; //如果是高度大于宽度则按竖图处理,宽小于高 if (img.Height > img.Width) { newWidth = 252; newHeight = 336; } #region 计算按比例缩放的图片尺寸 if (img.Height / img.Width > newHeight / newWidth) { newWidth = newHeight * img.Width / img.Height; } else { newHeight = img.Height * newWidth / img.Width; } #endregion #region 缩放图片 using (System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap((int)newWidth, (int)newHeight, PixelFormat.Format32bppArgb)) //using 3 { using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap)) { //清除整个绘图面并以透明背景色填充 graphics.Clear(Color.Transparent); //在指定位置并且按指定大小绘制 原图片 对象 graphics.DrawImage(img, new Rectangle(0, 0, (int)newWidth, (int)newHeight)); using (MemoryStream ms = new MemoryStream()) { bitmap.Save(ms, ImageFormat.Jpeg); return System.Drawing.Image.FromStream(ms); } } } #endregion } public bool IsReusable { get { return false; } } }
试试其它关键字
数据库
同语言下
.
C#实现的html内容截取
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
ailsa
贡献的其它代码
(
6
)
.
限制查询的记录数
.
读取数据库图片显示、缩小、更新
.
iframe自动高度
.
求当前月的天数
.
.csv文件转为Excel格式;Excel格式转换为.csv
.
android点击返回时触发的事件
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3