在SQL SERVER中建立这样结构的一个表:

列名 类型 目的
ID Integer 主键ID
IMGTITLE Varchar(50) 图片的标题
IMGTYPE Varchar(50) 图片类型. ASP.NET要以辨认的类型
IMGDATA Image 用于存储二进制数据

==============================================================================================     using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Data.SqlClient;
using System.IO;

public partial class ChangeImageSize : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

}

private int width;
        private int height;
        private Bitmap newpic, savepic;
        private float k1, k2;

/// <summary>
        /// 构造函数
        /// </summary>
        public ChangeImageSize()
        {
        }

/// <summary>
        /// 传入一张图片,并设定它的大小
        /// </summary>
        /// <param name="TheImage">传入的图片对象</param>
        /// <param name="TheWidth">图片宽的范围</param>
        /// <param name="TheHeight">图片长的范围</param>
        /// <param name="path">保存的文件名和路径</param>
        public Bitmap ChangePicMethod(object TheImage, int TheWidth, int TheHeight)
        {
            newpic = new Bitmap((System.Drawing.Image)TheImage);
            this.width = newpic.Width;
            this.height = newpic.Height;

k1 = (float)width / (float)TheWidth;
            k2 = (float)height / (float)TheHeight;
            if (k1 > k2)
            {
                this.width = (int)(width / k1);
                this.height = (int)(height / k1);
            }
            else
            {
                this.width = (int)(width / k2);
                this.height = (int)(height / k2);
            }
            savepic = new Bitmap(newpic, width, height);
            return savepic;
            //savepic.Save(@path);
        }

/// <summary>
    /// 保存图片到数据库
    /// </summary>
    /// <returns></returns>
        private bool StoreImage()
        {
            bool rs = false;
            Stream imgdatastream = this.FileUpload1.PostedFile.InputStream;
            int imgdatalen = this.FileUpload1.PostedFile.ContentLength;
            string imgtype = this.FileUpload1.PostedFile.ContentType;
            string imgtitle =FileUpload1.PostedFile.FileName;
            // byte[] imgdata = new byte[imgdatalen];
            //int n = imgdatastream.Read(imgdata, 0, imgdatalen);
            //Bitmap bp = ChangePicToSaveMethod(imgdatastream, 200, 200);
           
            MemoryStream ms = new MemoryStream();
            Bitmap bp = new Bitmap(imgdatastream);
            bp = ChangePicMethod(bp, 200, 200);
            //bp=bp.GetThumbnailImage(200,200,new System.Drawing.Image.GetThumbnailImageAbort(aa()) ,System.IntPtr.Zero);
            bp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            ms.Flush();
            byte[] imgdata = ms.GetBuffer();
            ms.Close();

SqlConnection connection = Connection.getConnection();
            SqlCommand command = new SqlCommand("INSERT INTO ImageStore(ImageTitle,ImageType,ImageData)VALUES ( @imgtitle, @imgtype,@imgdata )", connection);

SqlParameter paramTitle = new SqlParameter("@imgtitle", SqlDbType.VarChar, 50);

paramTitle.Value = imgtitle;
            command.Parameters.Add(paramTitle);

SqlParameter paramData = new SqlParameter("@imgdata", SqlDbType.Image);
            paramData.Value = imgdata;
            command.Parameters.Add(paramData);

SqlParameter paramType = new SqlParameter("@imgtype", SqlDbType.VarChar, 50);
            paramType.Value = imgtype;
            command.Parameters.Add(paramType);

connection.Open();
            int numRowsAffected = command.ExecuteNonQuery();
            connection.Close();
            rs = true;
            return rs;
        }
    /// <summary>
    /// 从数据库取出图片
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
        private void GetImage(string imgid)
        {
            string sql = "SELECT ImageData, ImageType FROM ImageStore WHERE ID = " + imgid;
            SqlConnection connection = Connection.getConnection();
            SqlCommand command = new SqlCommand(sql, connection);
            connection.Open();
            SqlDataReader dr = command.ExecuteReader();
            if (dr.Read())
            {
                Response.ContentType = dr["ImageType"].ToString();
                Response.BinaryWrite((byte[])dr["ImageData"]);
            }
            connection.Close();

}

}

转载于:https://www.cnblogs.com/carekee/articles/2083425.html

ASP.NET使用数据库存储、读取并修改图片相关推荐

  1. 执行还原操作_【操作技巧】SQL2014数据库存储路径的修改方法

    随着数据库数据量的不断增加,如果造成磁盘空间不足需要修改数据存储路径时,下面提供两种操作方法. 方法一:备份更改存储路径 1. 将数据库做备份. 2. 在准备将数据库移动到的目标盘符中建立一个明显的文 ...

  2. Java读取并修改图片的像素值

    Java程序读取图片像素的值类, package work;import java.awt.AWTException; import java.awt.Dimension; import java.a ...

  3. python趣图_Python 趣味练习- 修改图片

    无聊在Github上看见python的趣味练习题,自己试着做了做 第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 这个题目主要是练习对P ...

  4. SSM框架实现数据库存储图片及读取图片

    SSM框架实现数据库存储图片及读取图片 需求说明 项目实现 数据库设计 类型转换 页面显示数据库中的图片 总结 需求说明 这个案例纯粹是研究用的,以备日后查看,实际中暂时还没接触过此类应用. 需求:在 ...

  5. asp.net mvc 从数据库中读取图片的实现代码

    首先是创建一个类,继承于ActionResult,记住要引用System.Web.Mvc命名空间,如下: public class ImageResult : ActionResult { publi ...

  6. 在ASP.NET AJAX中使用应用程序服务和本地化(4):示例程序:读取、修改并保存用户个性化信息...

    本文来自<ASP.NET AJAX程序设计 第II卷:客户端Microsoft AJAX Library相关>的第五章<应用程序服务和本地化>. 让我们通过编写一个完整的示例程 ...

  7. MySQL查看和修改数据库存储目录

    1.查看数据库存储目录 登录MySQL后使用如下命令: show global variables like "%datadir%" 查询结果: 2.修改数据库存储目录 MySQL ...

  8. 修改Windows MySQL数据库存储位置

    亲测MySQL8.0和MySQL5.7版本都可以修改成功. 1. 查看当前数据库存储位置 show global variables like '%datadir%'; 可以看到默认存储地址是: C: ...

  9. 用jsp_servlet实现在mysql中存储图片_从数据库中读取并生成图片的Servlet

    从数据库中读取并生成图片的Servlet 作者:未知    文章来源:www.jspcn.net 发布日期:2005年01月19日 作者:邵望 日期:2000-12-24 21:44:55 大体思路 ...

最新文章

  1. (转)IntelliJ Idea 的相关使用
  2. vue-cli 搭建vue项目
  3. spring beans源码解读之--XmlBeanFactory
  4. linux为用户添加sudo权限
  5. 首批 8 款 5G 手机获 3C 认证;iPhone6 系列停产;Android Q Beta 5 发布 | 极客头条
  6. ajax 跨域请求_什么是跨域问题?如何解决?
  7. window 显示本机信息的脚本 bat
  8. Element Form表单布局(一行多列)
  9. SSM面试题及相关答案
  10. 齐杰文学CMS - 关关采集器2021可用19条采集规则
  11. 青囊如可授 从此访鸿蒙的意思,有关于中元节的诗内容
  12. Python_基础笔记
  13. git stash 暂存恢复和文件误删恢复
  14. 关于STM32的jlink仿真器突然不能工作的解决方法
  15. Windows10安装Linux子系统Ubuntu 20.04LTS,轻松使用生信软件,效率秒杀虚拟机(转载)
  16. Learning Spatio-Temporal Transformer for Visual Tracking——精读笔记
  17. OOM问题原理解析(四):Bitmap压缩方案总结
  18. vue 计算属性和监听器区别
  19. 【C进阶】之结构体类型( struct)
  20. 12.3 call_soon、call_at、call_later、call_soon_threadsafe

热门文章

  1. LeetCode 1880. 检查某单词是否等于两单词之和
  2. LeetCode 1243. 数组变换
  3. LeetCode 1472. 设计浏览器历史记录(双栈)
  4. LeetCode 501. 二叉搜索树中的众数(中序遍历)
  5. 在android添加数据采集,一种基于Android系统的地理信息数据采集方法与流程
  6. linux防火墙 33001端口,Linux操作系统下IPTables配置方法详解
  7. python书籍_Python书籍大汇总——入门到实战
  8. 编程思想:面向对象和面向过程
  9. 华为nova4是不是鸿蒙系统,华为nova 4手机什么时候可以升级鸿蒙系统?鸿蒙系统nova4升级时间介绍...
  10. 静物摄影用光技巧_室内人像摄影想要拍好,这3种用光技巧你了解吗?