///pu" />
当前位置:文档之家› C# 存取二进制图片

C# 存取二进制图片

C# 存取二进制图片
C# 存取二进制图片

有一个员工表Employee,需要保存员工照片(Photo)到数据库(sql server)上。员工照片对应的字段是varbinary(max),也就是要存成二进制文件类型(这和以前讨巧地存图片文件路径就不相同了),默认可以为空。下面说说主要实现思路:

1、存取图片

(1)、将图片文件转换为二进制并直接存进sql server

//UploadHelper.cs

///

/// 将图片转化为长二进制

///

/// "photopath">

///

public static Byte[] SetImgToByte(string imgPath)

{

FileStream file = new FileStream(imgPath, FileMode.Open, FileAccess.Read);

Byte[] byteData = new Byte[file.Length];

file.Read(byteData, 0, byteData.Length);

file.Close();

return byteData;

}

///

/// 将转换成二进制码的图片保存到数据库中

///

public static bool SaveEmployeeImg2Db(Employee model, string path)

{

try

{

Byte[] imgBytes = SetImgToByte(path);

model.Photo = imgBytes;

bool flag=EmployeeService.SaveEmployeePhoto(model); //EmployeeService是公

司内部的库调用,插入或者更新照片,这里不透露细节

return flag;

}

catch (Exception ex)

{

throw ex;

}

}

(2)、在网页中上传图片

///

/// 上传图片

///

/// "sender">

/// "e">

protected void btnUpload_Click(object sender, EventArgs e)

{

string serverPath = Server.MapPath("~/images/");

if (this.fuPhoto.HasFile) //fuPhoto是fileupload控件

{

string fileName = this.fuPhoto.PostedFile.FileName;

FileInfo fi = new FileInfo(fileName);

string mimeType = this.fuPhoto.PostedFile.ContentType.ToLower();

if (mimeType.IndexOf("image") < 0)

{

//("上传的照片格式不对");

}

else if(fi.Length > 2* 1024 * 1024)

{

//图片大于2M,重新处理

}

else

{

string saveFilePath = serverPath + DateTime.Now.ToString("yyyyMMddHHmmss") + fileName;

try

{

//先存图片到服务器

this.fuPhoto.PostedFile.SaveAs(saveFilePath);

//转成二进制

Employee model = new Employee(int.Parse(id)); //id是EmployeeId,这里是模拟字段

bool flag = UploadHelper.SaveEmployeeImg2Db(model, saveFilePath);

}

catch

{

//("照片上传失败");

}

finally

{

//最后删掉该图片

if (System.IO.File.Exists(saveFilePath))

{

System.IO.File.Delete(saveFilePath);

}

}

}

}

else

{

//("全选择要上传的照片");

}

}

(3)、从数据库取出照片(返回格式Image)

//UploadHelper.cs

///

/// 将二进制转化为图片Image

///

/// "photopath">

///

public static System.Drawing.Image GetImgFromByte(Employee model) {

System.Drawing.Image img = null;

try

{

Stream stream = new MemoryStream(model.Photo);

img = System.Drawing.Image.FromStream(stream,false);

}

catch

{

img = null;

}

return img;

}

上面的这个方法取出来之后,如果在winform下,直接给一个PictureBox的Image属性赋值就可以了。可是web下没有这么强大的控件,所以,就有了下面的步骤。

2、直接在网页中以流的形式显示图片

(1)、生成图片流页面(ImgHelper .aspx)

这个页面的设计页面什么也没有,类文件如下:

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Collections.Generic;

using System.IO;

///

/// 图片辅助类

///

public partial class ImgHelper : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!string.IsNullOrEmpty(Request["employeeId"])) //需要显示照片的页面传递的员工id

{

int employeeId = int.Parse(Request["employeeId"]);

Employee model = //EmployeeService.GetEmployeeByCondition(new Employee(employeeId))[0] as Employee; //内部函数查找一个员工不透漏细节

try

{

Byte[] byteImg = model.Photo;

Stream stream = new MemoryStream(byteImg);

System.Drawing.Bitmap img =(System.Drawing.Bitmap) System.Drawing.Bitmap.FromStream(stream, false); //转换成Bitmap

Response.Buffer = false;

Response.ContentType = "image/jpg";

Response.AddHeader("Content-Disposition",

"attachment;filename=photo.jpg");//照片名称叫photo.jpg

Response.BinaryWrite(byteImg);//写入二进制流

Response.End();

}

catch

{

Response.End();

}

}

}

}

(2)、显示照片的页面调用ImgHelper .aspx

在页面加载的时候,给图片控件赋值如下:

this.imgPhoto.ImageUrl = "/ImgHelper.aspx?employeeId="+tmpEmployee.Id.ToString(); //imgPhoto是图片控件

总体来说,一存一取,对于winform是很方便的,但是对于webform,我们需要稍微有一个转化的思路。如果有牛人写出像winform下那种直接绑定Image对象的控件更好了。上面代码测试通过,希望对你有帮助。

数据库图片的存储

1、引言 数据库应用程序,特别是基于WEB的数据库应用程序,常会涉及到图片信息的存储和显示。通常我们使用的方法是将所要显示的图片存在特定的目录下,在数据库中保存相应的图片的名称,在JSP中建立相应的数据源,利用数据库访问技术处理图片信息。但是,如果我们想动态的显示图片,上述方法就不能满足需要了。我们必须把图片存入数据库,然后通过编程动态地显示我们需要的图片。实际操作中,可以利用JSP的编程模式来实现图片的数据库存储和显示。 2、建立后台数据库 假定处理的是图片新闻,那么我们可以建立相应的数据库及数据表对象。我们要存取的数据表结构的SQL脚本如下所示: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[picturenews]') andOBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[picturenews] GO CREATE TABLE [dbo].[picturenews] ( [id] [int] IDENTITY (1, 1) NOT NULL , [image] [image] NULL , [content] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL , [detail] [varchar] (5000) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO 表picturenews中,字段id作为标识,每存储一行数据,自动增加1。字段image 用于存储图片信息,其数据类型为“image”。 3、向数据库存储二进制图片 启动Dreamweaver MX后,新建一个JSP文件。其代码如下所示。 <%@ page contentType="text/html;charset=gb2312"%>

容量及图片像素换算

K是千M是兆G是吉咖T是太拉 8bit(位)=1Byte(字节) 1024Byte(字节)=1KB 1024KB=1MB 1024MB=1GB 1024GB=1TB 数位组:一个在信息技术和数码技术领域中,用于表示信息的数量的单位。 一个数位组是数个二进位的组合。早期的不同计算机系统中使用的数位组含有的二进位数目不尽相同。但目前数位组在应用上已经统一,即,一个数位组通常由8个二进位组成。16个二进位合成一个字(word). 32个二进位构成一个复字(double words)。 每个二进位,可用来代表两种状态之一,如电路的开/断等)组成,因此可以代表28 = 256个不同的状态。 4个二进位的组合称为四位组(Nibble)。8个二进位的组合则为一个八位组(Octet)。所以一个数位组通常是一个八位组。 数位组是一个承载信息的基本单元。一个数位组表明的信息由所用的编码方式决定。不同的编码方式有可能用一个或多个数位组来表示一个数字,一个符号,或者一幅图像中的一个色点。常用的编码方式如用来表示字符集的ASCII编码或者ISO/IEC 8859标准的编码。 字节又被译为“字节”,即是在电脑内一个英文字所占的最基本单元。而一个中文字是占两个字节的。 由数位组引申出的计量单位 1 kilobyte kB = 1000 (103) byte 1 megabyte MB = 1 000 000 (106) byte 1 gigabyte GB = 1 000 000 000 (109) byte 1 terabyte TB = 1 000 000 000 000 (1012) byte 1 petabyte PB = 1 000 000 000 000 000 (1015) byte 1 exabyte EB = 1 000 000 000 000 000 000 (1018) byte 1 zettabyte ZB = 1 000 000 000 000 000 000 000 (1021) byte 1 yottabyte YB = 1 000 000 000 000 000 000 000 000 (1024) byte 1 nonabyte NB = 1 000 000 000 000 000 000 000 000 000 (1027) byte 1 doggabyte DB = 1 000 000 000 000 000 000 000 000 000 000 (1030) byte 注意上面Kibi这一系列的定义。Kibi来自英语kilo-binary(二进制的千), 1998年10月在IEC60027-2中订位标准。但到目前在各种应用中还没有完全占优势。 在信息行业中常用用于内存容量的MB, GB,几乎都是指220,230,…数位组。KB也经常表示210数位组,以区别于kB。当然你也会经常看到kB被混用来表示210数位组。这些表示法都并没有被标准化。

C#从SQL 数据库中读取和存入图片

C#从SQL 数据库中读取和存入图片 本实例主要介绍如何将图片存入数据库。将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类、BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用 ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中。主要代码如下: private void button1_Click(object sender, EventArgs e) { openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP"; if(openFileDialog1.ShowDialog()==DialogResult.OK) { string fullpath =openFileDialog1.FileName;//文件路径 FileStream fs = new FileStream(fullpath, FileMode.Open); byte[] imagebytes =new byte[fs.Length]; BinaryReader br = new BinaryReader(fs); imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length)); //打开数据库 SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05"); con.Open(); SqlCommand com = new SqlCommand("insert into tb_08 values(@ImageList)",con); com.Parameters.Add("ImageList", SqlDbType.Image); com.Parameters["ImageList"].Value = imagebytes; com.ExecuteNonQuery(); con.Close();

二进制相关试题图文稿

二进制相关试题 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

数制转换 1. 将十六进制数AB 转化为十进制数是_C___。 A 、175? B 、176? C 、171? D 、188 2. 十进制整数100化为二进制数是_A___。 A 、1100100 B 、1101000 C 、1100010 D 、1110100 3. (65.125)D =(1000001.001)B =(41.2)H 4. 十进制数241转换为二进制数是。 5. 十进制数(57、25)D 分别转换成二进制数(111001、01)B 、八进制数 (71、2)O 、十六进制(39、4)H 。 6. 十进制整数69转换成二进制数的结果是______。 A.1000011 B.1000101 C.1001001 D.1010001 7. 将十六进制数ADH 转化为十进制数是______。 A.171 B.172 C.173 D.113 8. 将十六进制数ADH 转化为八进制数是______。 A.171 B.172 C.173 D.255 9. 十进制整数96转换成二进制数的结果是______。 A.1010010 B.1100100 C.1010000 D.1100000 10. 将十六进制数ABH 转化为十进制数是______。 A.175 B.176 C.171 D.188 11. 二进制数2转换成十六进制数为______H 。 12. 十进制整数108化为二进制数是______。

A.1101000 B.1100110 C.1101100 D.1110100 转换成十六进制数的结果为______。 13.十进制数(67.125) 10 14.十六进制1000转换成十进制数是______。 A.4096 B.1024 C.2048 D.8192 转换成十六进制数为______。 15.二进制数(1011011.011) 2 16.十进制整数100化为二进制数是______。 A.1101000 B.1100100 C.1100010 D.1110100 转换成十六进制数的结果为______。 17.十进制数(35.375) 10 机器数/原码/反码/补码(暂时不考虑) 18.假定机器字长为8位,则[-1]补=。 19.将十进制数(-17)10转换成等价的字长为8位的机器数结果为。 20.将十进制数(-71)10转换成8位长的机器数结果为。 21.在8位(bit)机器字长中,15的补码是______。 22.在8位(bit)机器字长中,-79的补码是______。 23.将十进制数-65转换成8位长的机器数,正确的结果为______。 24.在8位(bit)机器字长中,-35的补码是______。 25.在8位(bit)机器字长中,-58的补码是______。 26.将十进制数-78转换成8位长的机器数,结果为______。 二进制表示的最大范围 27.用1个字节表示非负整数,最大值为______。 28.用1个字节表示带符号整数,其最大值所对应的十进制数为。 29.16位无符号整数的取值范围(0~216-1)。

怎样将图片上传到数据库进行保存

这个范例共包括三个ASP文件和一个数据库(一个表),全部在同一目录下。 1、tblImage 表结构(ACCESS 2000) sn 自动编号序列号 content-type 文本图片类型 image OLE 对象图片数据 2、SimpleImageToData.asp:上传表单及保存图片到数据库的代码部分,主要文件。 <%@ Language=VBScript %> <% option explicit %> <% '从一个完整路径中析出文件名称 function getFileNamefromPath(strPath) getFileNamefromPath = mid(strPath,instrrev(strPath,"\")+1) end function '定义数据库连接字符串 dim cnstr cnstr = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.MapPath("./upload.mdb") %> 单个图像保存到数据库 上传图片 显示图片


<% if request.ServerVariables("REQUEST_METHOD") = "POST" then dim sCome, sGo, binData, strData dim posB, posE, posSB, posSE dim binCrlf dim strPath, strFileName, strContentType binCrlf = chrb(13)&chrb(10) '定义一个单字节的回车换行符

php接收二进制数据流转换成图片

Php代码 1 error_handler () ); 33 34 //设置保存图片名称,若未设置,则随机产生一个唯一文件名 35 $this->save_name = $save_name ? $save_name : md5 ( mt_rand (), uniqid () ); 36 //设置保存图片路径,若未设置,则使用年/月/日格式进行目录存储 37 $this->save_dir = $save_dir ? self::ROOT_PA TH .$save_dir : self::ROOT_PA TH .date ( 'Y/m/d' ); 38 39 //创建文件夹 40 @$this->create_dir ( $this->save_dir );

C# 图片保存到数据库和从数据库读取图片并显示

C# 图片保存到数据库和从数据库读取图片并显示 图片保存到数据库的方法: public void imgToDB(string sql) { //参数sql中要求保存的imge变量名称为@images //调用方法如:imgToDB("update UserPhoto set Photo=@images where UserNo='" + temp + "'"); FileStream fs = File.OpenRead(t_photo.Text); byte[] imageb = new byte[fs.Length]; fs.Read(imageb, 0, imageb.Length); fs.Close(); SqlCommand com3 = new SqlCommand (sql,con); com3.Parameters.Add("@images", SqlDbType.Image).Value = imageb; if (com3.Connection.State == ConnectionState.Closed) com3.Connection.Open(); try { com3.ExecuteNonQuery(); } catch { } finally { com3.Connection.Close(); } } 数据库中读出图片并显示在picturebox中: 方法一: private void ShowImage(string sql) { //调用方法如:ShowImage("select Photo from UserPhoto where UserNo='" + userno +"'"); SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); byte[] b= (byte[])cmd.ExecuteScalar(); if (b.Length 〉0) { MemoryStream stream = new MemoryStream(b, true); stream.Write(b, 0, b.Length); pictureBox1.Image = new Bitmap(stream); stream.Close(); } conn.Close(); }

上传图片及存到数据库

1.上传图片到指定的文件夹,并且把图片的路径存到数据库里面。 //判断上传是否有文件 if (FileUpload1.HasFile) { string filepath = FileUpload1.PostedFile.FileName.ToString(); //将图片保存到项目文件夹image里面 string fileName = System.IO.Path.GetFileName(filepath); string savePaht = Server.MapPath("images/" + fileName); FileUpload1.SaveAs(savePaht); string strSql = "insert into userInfo (userimage) values ('"+ filepath+"')"; // string strSql = "insert into userInfo (userimage) values (@image)"; //userInfo 是表名userimage是图片的字段 Sqlconnection conn=new Sqlconnection(@"数据库的连接字符串"); SqlCommand cmd = new SqlCommand(strSql, conn); conn.open(); //cmd.parameters.add("@image",sqldbtype.varchar,100).value="./image"+filepath; cmd.ExecuteNonQuery(); } 2.遍历文件夹里面的图片,显示在datalist里面 //获取图片所在的文件夹的路径 DirectoryInfo imagesfile = new DirectoryInfo(Server.MapPath("./images")); //绑定数据源 DataList1.DataSource = imagesfile.GetFiles("*.jpg"); DataList1.DataBind();

二进制十进制算法

在一种数制中,只能使用一组固定的数字符号来表示数目的大小,具体使用多少个数字符号来表示数目的大小,就称为该数制的基数。例如: 1.十进制(Decimal) 基数是10,它有10个数字符号,即0,l,2,3,4,5,6,7,8,9。其中最大数码是基数减1,即9,最小数码是0。 2.二进制(Binary) 基数是2,它只有两个数字符号,即0和1。这就是说,如果在给定的数中,除0和1外还有其它数,例如 1012,它就决不会是一个二进制数。 3.八进制(Octal) 基数是8,它有8个数字符号,即0,l,2,3,4,5,6,7。最大的也是基数减1,即7,最小的是0。 4.十六进制(Hexadecilnal) 基数是16,它有16个数字符号,除了十进制中的10个数可用外,还使用了6个英文字母。它的16个数字依次是0,l,2,3,4,5,6,7,8,9,A,B,C,D,E,F。其中A至F分别代表十进制数的10至15,最大的数字也是基数减1。 既然有不同的进制,那么在给出一个数时,需指明是什么数制里的数。例如:(1010)2,(1010)8,(1010)10,(1010)16所代表的数值就不同。除了用下标表示外,

还可用后缀字母来表示数制。例如 ZA4EH,FEEDH,BADH(最后的字母 H表示是十六进制数),与(ZA4E)16,(FEED)16,(BAD)16的意义相同。 进制和位权 在数制中,还有一个规则,这就是,N进制必须是逢N进一。 对于多位数,处在某一位上的“l”所表示的数值的大小,称为该位的位权。例如十进制第2位的位权为10,第3位的位权为100;而二进制第2位的位权为2,第3位的位权为4,对于 N进制数,整数部分第 i位的位权为Ni-1,而小数部分第j位的位权为N-j。 l.十进制数的特点是逢十进一。例如: (1010)10 =1× 103+0× 102+1× 101+0× 100 2.二进制数的特点是逢二进一。例如: (1010)2 =l× 23+0 × 22+l× 21+0 × 20=(10)10 3.八进制数的特点是逢八进一。例如: (1010)8 =l× 83+0 × 82+l× 81+0 × 80=(520)10

存储过程_将图片存入数据库

一、写一个存储过程,将图片存入数据库中 基本情况介绍: 数据库版本:oracle 11g 数据库用户:scott 数据库密码:tiger JDK:1.6 要导入的图片:D:\picture\1.jpg --创建存储图片的表 CREATE TABLE IMAGE_LOB (T_ID V ARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL); --创建存储图片的目录 CREATE OR REPLACE DIRECTORY IMAGES AS 'D:\picture'; 存储过程如下: CREATE OR REPLACE PROCEDURE IMG_INSERT (TID V ARCHAR2,FILENAME V ARCHAR2) AS F_LOB BFILE;--文件类型 B_LOB BLOB; BEGIN iNSERT INTO IMAGE_LOB (T_ID, T_IMAGE) V ALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB; --插入空的blob F_LOB:= BFILENAME ('IMAGES', FILENAME); --获取指定目录下的文件 DBMS_LOB.FILEOPEN(F_LOB, DBMS_LOB.FILE_READONL Y); --以只读的方式打开文件 DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,DBMS_LOB.GETLENGTH (F_LOB)); --传递对象 DBMS_LOB.FILECLOSE (F_LOB); --关闭原始文件 COMMIT; END;

通过java或jsp想数据库存取二进制图片(精)

1 MySQL存储大容量的二进制文件的格式是 blob ,其实除了图片还可以存别的 2 要向数据库存储二进制的文件一定要把要存储的数据转换成二进制流 废话就不多说了, 大家看看代码很容易明白, 先来看一个 app 程序, 当然首先您要在数据库中先建立一个用于保存图片的表和相应的列,数据格式为 blob package com.lizhe; import Java.io.*; import java.sql.*; public class PutImg { public void putimg( { try { Class.forName("org.gjt.mm.mysql.Driver".newInstance(; String url = "JDBC:mysql://localhost/img?user=root&password=root&useUnicode=true&characterE ncoding= gbk"; Connection conn = DriverManager.getConnection(url; Statement stmt = conn.createStatement(; //stmt.execute("insert into imgt (id values (5"; stmt.close(; PreparedStatement pstmt = null; String sql = "";

File file = new File("c: log.jpg"; InputStream photoStream = new FileInputStream(file; //sql = " UPDATE imgt SET img = ? "; sql = "INSERT INTO imgtable (img VALUES (?"; pstmt = conn.prepareStatement(sql; pstmt.setBinaryStream(1, photoStream, (int file.length(; pstmt.executeUpdate(; pstmt.close(; conn.close(; } catch (Exception e { e.printStackTrace(; } } public static void main(String args[]{ PutImg pi=new PutImg(; pi.putimg(; } } InputStream photoStream = new FileInputStream(file;

将数据库中保存的图片缩小的一种方法

在数据库的日常维护中,经常遇到一些小问题需要处理,比如图片的存储,说起来也是我当初程序设计考虑不全。 数据库: SQLServer 2000 程序:Delphi 图片存放字段类型: BLOB 客户只存了不到1000张图片,结果数据库存放空间现在是相当的大了, 因客户端用户上传图片时,小的几M,大的几十M,主要是数码相机照的,最开始时,我的软件没有处理大小, 最近才缩小处理后再保存. 而现在资料库文件就是40多G了 带来问题:查询带图片的功能时很慢,每次备份时很慢,且备份文件也大。以后如果继续增大…… 解决方法:改变数据库中图片的大小, 在保证1024*768的清晰程度下,尽可能小的改变资料库容量。 使用中间图片c:\tmp.jpg取出数据库的图形,按比例缩小,然后保存在数据库中,再收缩数据库。 具体过程: 1.将数据库中图片取出用TADOBlobStream处理。 2.用函数ZoomJpgSize(iLen,iWid,picBlob)等比例缩小。 3.用TADOBlobStream将图片保存回数据库。 4.收缩数据库DBCC SHINKDATABASE('bb001',TRUNCATEONLY) 具体核心代码见附件。 test_ZoomJpg.rar 最后问题得以解决. 最后文件大小从40G下降到了不到1G。 说明: 1.源程序可以继续改进,TADOBlobStream流是否可以转为二进制直接压缩。欢迎交流15196670@https://www.doczj.com/doc/8e15544617.html, 2.源程序用c:\tmp.jpg处理几M的图片时速度慢。 3.源程序图片处理可以继续加强,如放大,缩小,导出本地文件,旋转等功能。

二进制十进制算法(终审稿)

二进制十进制算法 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

在一种数制中,只能使用一组固定的数字符号来表示数目的大小,具体使用多少个数字符号来表示数目的大小,就称为该数制的基数。例如 : 1.十进制(Decimal ) 基数是10,它有10个数字符号,即0,l ,2,3,4,5,6,7,8,9。其中最大数码是基数减1,即9,最小数码是0。 2.二进制(Binary ) 基数是2,它只有两个数字符号,即0和1。这就是说,如果在给定的数中,除0和1外还有其它数,例如1012,它就决不会是一个二进制数。 3.八进制(Octal ) 基数是8,它有8个数字符号,即0,l ,2,3,4,5,6,7。最大的也是基数减1,即7,最小的是0。 4.十六进制(Hexadecilnal) 基数是16,它有16个数字符号,除了十进制中的10个数可用外,还使用了6个英文字母。它的16个数字依次是0,l ,2,3,4,5,6,7,8,9,A ,B ,C ,D ,E ,F 。其中A 至F 分别代表十进制数的10至15,最大的数字也是基数减1。 既然有不同的进制,那么在给出一个数时,需指明是什么数制里的数。例如:(1010)2,(1010)8,(1010)10,(1010)16所代表的数值就不同。

除了用下标表示外,还可用后缀字母来表示数制。例如ZA4EH,FEEDH, BADH(最后的字母H表示是十六进制数),与(ZA4E) 16,(FEED) 16 ,(BAD) 16 的意义相同。 进制和位权 在数制中,还有一个规则,这就是,N进制必须是逢N进一。 对于多位数,处在某一位上的“l”所表示的数值的大小,称为该位的位权。例如十进制第2位的位权为10,第3位的位权为100;而二进制第2位的位权为2,第3位的位权为4,对于N进制数,整数部分第i位的位权为Ni-1,而小数部分第j位的位权为N-j。 l.十进制数的特点是逢十进一。例如: (1010)10=1×103+0×102+1×101+0×100 2.二进制数的特点是逢二进一。例如: (1010)2=l×23+0×22+l×21+0×20=(10)10 3.八进制数的特点是逢八进一。例如: (1010)8=l×83+0×82+l×81+0×80=(520)10 4.十六进制数的特点是逢十六进一。例如: (BAD)16=11×162+10×l61+13×160=(2989)10 一、二进制的算术运算 1.运算法则 (1)、加法法则 0+0=0

介绍如何将图片存入数据库

本实例主要介绍如何将图片存入数据库。将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类、BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中。主要代码如下: private void button1_Click(object sender, EventArgs e) { openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP"; if(openFileDialog1.ShowDialog()==DialogResult.OK) { string fullpath =openFileDialog1.FileName;//文件路径 FileStream fs = new FileStream(fullpath, FileMode.Open); byte[] imagebytes =new byte[fs.Length]; BinaryReader br = new BinaryReader(fs); imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length)); //打开数据库 SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05"); con.Open(); SqlCommand com = new SqlCommand("insert into tb_08 values(@ImageList)",con); com.Parameters.Add("ImageList", SqlDbType.Image); com.Parameters["ImageList"].Value = imagebytes; com.ExecuteNonQuery(); con.Close(); }

图片二进制读取

前段时间曾经写了一篇介绍MTK的铃声管理的工具,可以把MP3,MID,WAV等声音转化为MTK可以使用的数组以供在编程中使用。后来针对有些朋友需要把数组再转为文件的需求,写了把数组重新写回文件的文章。但MTK的图片管理与铃声管理差异比较大。MTK的图片管理需要把图片信息提取出来以后,经过加工才能使用。MTK把图片数组前八个字节用来描述图片的信息,然后才是图片的内容DATA。所以要生成图片信息,还需要写入数组头。数组头包括图片类型,分为GIF,BMP,PNG,JPB,PBM等,每一种使用一个unsigned char的类型描述。图片的桢数,同样使用一个字节描述。然后是图片的大小,使用三个字节描述,最后两个字节描述图片的高和宽。然后是图片的数据BUFFER。代码如下。 #include #include #include #include #define GDI_IMAGE_TYPE_INVALID 0 #define GDI_IMAGE_TYPE_BMP 1 #define GDI_IMAGE_TYPE_BMP_SEQUENCE 2 #define GDI_IMAGE_TYPE_GIF 3 #define GDI_IMAGE_TYPE_DEVICE_BITMAP 4 #define GDI_IMAGE_TYPE_DEVICE_BITMAP_SEQUENCE 5 #define GDI_IMAGE_TYPE_BMP_FILE 6 #define GDI_IMAGE_TYPE_GIF_FILE 7 #define GDI_IMAGE_TYPE_WBMP_FILE 8 #define GDI_IMAGE_TYPE_JPG 9 #define GDI_IMAGE_TYPE_JPG_FILE 10 #define GDI_IMAGE_TYPE_WBMP 11 #define GDI_IMAGE_TYPE_AVI 12 #define GDI_IMAGE_TYPE_AVI_FILE 13 #define GDI_IMAGE_TYPE_3GP 14 #define GDI_IMAGE_TYPE_3GP_FILE 15 #define GDI_IMAGE_TYPE_MP4 16 #define GDI_IMAGE_TYPE_MP4_FILE 17 #define GDI_IMAGE_TYPE_JPG_SEQUENCE 18 #define GDI_IMAGE_TYPE_PNG 19 #define GDI_IMAGE_TYPE_PNG_FILE 20 #define GDI_IMAGE_TYPE_PNG_SEQUENCE 21 #define GDI_IMAGE_TYPE_DEVICE_BMP_FILE 22 #define GDI_IMAGE_TYPE_BMP_FILE_OFFSET 23 #define GDI_IMAGE_TYPE_GIF_FILE_OFFSET 24 #define GDI_IMAGE_TYPE_M3D 25 #define GDI_IMAGE_TYPE_M3D_FILE 26 #define GDI_IMAGE_TYPE_SVG 27 #define GDI_IMAGE_TYPE_SVG_FILE 28

存储图片到SQLSERVER大数据库中

实用标准文档 如何存储图片到SQL SERVER数据库中 SQL Server提供了一个特别的数据类型:image,它是一个包含binary数据的类型。 下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法。在这篇文章中我们要看到如何在SQL Server中存储和读取图片。 1、建立一个表: 在SQL SERVER中建立这样结构的一个表: 列名类型目的 ID Integer主键ID IMGTITLEVarchar(50)图片的标题 IMGTYPEVarchar(50)图片类型. https://www.doczj.com/doc/8e15544617.html,要以辨认的类型 IMGDATA Image用于存储二进制数据 2、存储图片到SQL SERVER数据库中 为了能存储到表中,你首先要上传它们到你的WEB服务器上,你可以开发一个webform,它用来将客户端中TextBoxwebcontrol中的图片入到你的WEB服务器上来。将你的encType属性设置为:myltipart/formdata. Stream imgdatastream = File1.PostedFile.InputStream; int imgdatalen = File1.PostedFile.ContentLength; string imgtype = File1.PostedFile.ContentType; string imgtitle = TextBox1.Text; byte[] imgdata = new byte[imgdatalen];

int n = imgdatastream.Read(imgdata,0,imgdatalen); string connstr=((NameValueCollection)Context.GetConfig("appSettings"))["connstr"];S qlConnection connection = new SqlConnection(connstr); SqlCommand command = new SqlCommand ("INSERT INTO ImageStore(imgtitle,imgtype,imgdata) 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(); 3、从数据库中恢复读取

和二进制有关的那些事汇总

《和二进制有关的那些事儿——计算机中的信息编码》教学设计 【学习者分析】 本节课的教学对象是高一年级学生,学生已经对信息技术有了一定的自我认知。教材上对汉字在计算机中的编码写的比较简单但也比较抽象,以高一学生现在的认知结构不是很容易理解,学生往往被搞得一头雾水,难以形成科学系统的知识结构。基于以上教材和学情现状,我对这一部分内容重新进行了梳理,根据学生关心的生活问题编写了专题学习内容,引导学生迅速进入学习状态,并通过深度思考尝试自己解决问题。让学生克服编程畏难情绪,激发学生对未知知识的学习兴趣。并兼顾能力较强的学生,在导学案中设计不同的专题学习任务。在随堂练习环节,安排小组合作活动,形成帮带学习氛围。让学生在学习过程中,初步感受计算机信息编码的魅力,为以后的课程打好基础。 【教材分析】 本课以《信息技术基础》必修教材第四章第一节为基础,通过对信息技术基础知识的重新梳理、整合对“计算机中的信息编码”这一重要知识点进行了较为完整的归纳总结,帮助学生形成较为科学完善的知识结构。要了解计算机加工信息的内在机制,首先必须解决的难题就是计算机如何对信息进行编码。本节知识点较为抽象,不同层次的学生对本节的学习易产生分化,理解能力也存在着很大的差异,有些知识需要一定的基础才能领会和理解。我通过将教学内容设计成三个专题,围绕三组不同的问题展开学习内容,让学生课前自主选择并进入相应专题,这种基于问题的学习方法,能引起学生的自主关注。问题解决后,能给学生带来较大的心理成就感。揭开计算机加工信息的神秘面纱,激发学生探究欲望和学习的兴趣,也为后续选修模块《算法与程序设计》奠定基础。 【教学重点难点】 教学重点:数的编码方式;二进制在计算机信息编码中的应用。 教学难点:理解二进制的意义。 【课型】多媒体教室,讲授型课程 【教学过程】 #课前分组调查:二进制初体验#

图片保存到mysql数据库

在我们设计和制作网站的过程中,有时把图片保存到数据库中要比存成文件的形式更加方便。PHP和MySQL这对黄金组合可以很容易的实现上述功能。在本文中,我们将会向读者介绍如何把图片保存到MySQL数据库中以及如何将数据库中的图片显示出来。 设置数据库 我们通常在数据库中所使用的文本或整数类型的字段和需要用来保存图片的字段的不同之处就在于两者所需要保存的数据量不同。MySQL数据库使用专门的字段来保存大容量的数据,数据类型为BLOB。 MySQL数据库为BLOB做出的定义如下:BLOB数据类型是一种大型的二进制对象,可以保存可变数量的数据。BLOB具有四种类型,分别是TINYBLOB,BLOB, MEDIUMBLOB 和LONGBLOB,区别在于各自所能够保存的最大数据长度不同。 在介绍了所需要使用的数据类型之后,我们可以使用以下语句创建保存图象的数据表。 CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB ); 编写上传脚本 关于如何实现文件的上传,我们在这里就不再介绍了。现在,我

们主要来看一下如何接收上传文件并将其存入到MySQL数据库中。具体的脚本代码如下,其中我们假定文件上传域的名称为Picture。 这样,我们就可以成功的把图片保存到数据库中。如果在将图片插入MySQL的过程中出现问题,可以检查一下MySQL数据库所允许的最大数据包的大小。如果设置值过小的话,我们会在数据库的错误日志中找到相应的记录。 下面,我们简单说明一下上述脚本程序。首先,我们通过“If($Picture != "none")”检查是否有文件被上传。然后,使用addslashes()函数避免出现数据格式错误。最后,连接MySQL,选择数据库并插入图片。 显示图片 在知道了如何将图片存入数据库之后,我们就需要考虑怎样才能从

相关主题
文本预览
相关文档 最新文档