C#中Bitmap类 对图像の操作 可检测图片完整性

public static byte[] BitmapToBytes(Bitmap Bitmap)

        {

            try

            {

                using (MemoryStream ms = new MemoryStream())

                {

                    Bitmap.Save(ms, Bitmap.RawFormat);

                    byte[] byteImage = new Byte[ms.Length];

                    byteImage = ms.ToArray();

                    return byteImage;

                }

            }

            finally

            {

            }

        }

        BitmapToBytes(img).Reverse().Take(2);//然后判断是不是217,255

以二进制文件打开文件. 读取最后2个字节判断一下.
或者读取全部,从结尾处开始查找ffd9,找到了就表示OK.

有时候用相机网服务器传图片的时候,突然断网,造成图片不完整,都是上半部分是图片,线板部分,不能预览。怎样用C#判断图片(jpg)是否完整

C#中Bitmap类实现对图像操作的一些方法

导入以下两个包:

System.Drawing;

System.Drawing.Imaging;

建产对象:

Bitmap bm = new Bitmap("c:/1.bmp");

缩放:

Bitmap bm1 = new Bitmap(bm,width,height);

格式转换:

bm.save("c:/1.jpg",ImageFromat.Jpeg);

bm1.Save("c:/1.gif", ImageFormat.Gif);

剪切一个区域:

//剪切大小

int cutwidth;

int cutheight;

Graphics g;

//以大小为剪切大小,像素格式为32位RGB创建一个位图对像

Bitmap bm1 = new Bitmap(width,height,PixelFormat.Format32bppRgb) ;

//定义一个区域

Rectangle rg = new Rectangle(0,0,cutwidth,cutheight);

//要绘制到的位图

g = Graphics.FromImage(bm1);

//将bm内rg所指定的区域绘制到bm1

g.DrawImage(bm,rg)

============================================

C#Bitmap代替另一个Bitmap的某部分
Bitmap bm = new
Bitmap(宽度, 高度);// 新建一个 Bitmap 位图
System.Drawing.Graphics g =
System.Drawing.Graphics.FromImage(bm); // 根据新建的 Bitmap
位图,创建画布
g.Clear(System.Drawing.Color.Black);// 使用黑色重置画布
g.DrawImage(源位图,
......); // 绘制“源位图”,后面有若干参数控制大小、坐标等等功能。

==================================================
C#
图片处理之:旋转图片任意角度

/// <summary>

/// 任意角度旋转

/// </summary>

/// <param
name="bmp">原始图Bitmap</param>

/// <param
name="angle">旋转角度</param>

/// <param
name="bkColor">背景色</param>

/// <returns>输出Bitmap</returns>

public static
Bitmap KiRotate(Bitmap bmp, float angle, Color bkColor)


...{

int w = bmp.Width
+ 2;

int h = bmp.Height
+ 2;

PixelFormat pf;


if (bkColor
== Color.Transparent)


...{

pf = PixelFormat.Format32bppArgb;

}

else


...{

pf = bmp.PixelFormat;

}


Bitmap
tmp = new Bitmap(w, h, pf);

Graphics g = Graphics.FromImage(tmp);

g.Clear(bkColor);

g.DrawImageUnscaled(bmp, 1, 1);

g.Dispose();

GraphicsPath path = new GraphicsPath();

path.AddRectangle(new RectangleF(0f, 0f, w, h));

Matrix
mtrx = new Matrix();

mtrx.Rotate(angle);

RectangleF rct = path.GetBounds(mtrx);


Bitmap
dst = new Bitmap((int)rct.Width,
(int)rct.Height, pf);

g = Graphics.FromImage(dst);

g.Clear(bkColor);

g.TranslateTransform(-rct.X, -rct.Y);

g.RotateTransform(angle);

g.InterpolationMode = InterpolationMode.HighQualityBilinear;

g.DrawImageUnscaled(tmp, 0, 0);

g.Dispose();

tmp.Dispose();


return dst;

}

时间: 2024-08-05 11:22:40

C#中Bitmap类 对图像の操作 可检测图片完整性的相关文章

c#图像处理入门(-bitmap类和图像像素值获取方法)

c#图像处理入门 -bitmap类和图像像素值获取方法 一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下: 1. GetPixel方法和SetPixel方法:获取和设置一个图像的指定像素的颜色. 2. PixelFormat属性:返回图像的像素格式. 3. Palette属性:获取和设置图像所使用的颜色调色板. 4. Height Width属性:返回图像的高度和

C#中的bitmap类和图像像素值获取方法

一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下: 1. GetPixel方法和SetPixel方法:获取和设置一个图像的指定像素的颜色. 2. PixelFormat属性:返回图像的像素格式. 3. Palette属性:获取和设置图像所使用的颜色调色板. 4. Height Width属性:返回图像的高度和宽度. 5. LockBits方法和UnlockBits

Java中String类(字符串操作)的10个常见问题和解决方法

注:来自百度搜索,还没有码一遍,一定要码!! 1. 字符串比较,使用 "==" 还是 equals() ?简单来说, "==" 判断两个引用的是不是同一个内存地址(同一个物理对象).而 equals 判断两个字符串的值是否相等.除非你想判断两个string引用是否同一个对象,否则应该总是使用 equals()方法.如果你了解 字符串的驻留 ( String Interning ) 则会更好地理解这个问题 2. 对于敏感信息,为何使用char[]要比String更好?

PHP图像操作类

基于已给出的各种图像操作方法,这里我总结出了PHP图像操作的一个类,包含给图像加入文字水印.图像水印和压缩图片. 读者可自行加入功能. <? php class Image { private $info; private $type; private $iamge; /** * 打开图片,写入内存 * **/ public function __construct($src) { $this->info = getimagesize($src); $this->type = image

OC中的NSDate日期类和Foundation框架中的结构体相关操作

一:NSDate NSDate可以?用来表?示时间,可以进?行?一些常见的?日期\时间处理 • ?一个NSDate对象就代表?一个时间• [NSDate date]返回的就是当前时间 1)日期对象的格式化操作 // 1,获取当前时间 // NSDate *date = [NSDate date]; // NSLog(@"date = %@", date); // // // 格式化输出时间 //// y : 年 //// // M : 月 //// // d : 日 //// // h

Android图像处理之Bitmap类

Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件.本文从应用的角度,着重介绍怎么用Bitmap来实现这些功能. 一.Bitmap的生成 1.1 BitmapFactory decode出Bitmap Bitmap实现在android.graphics包中.但是Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化.这必然是 某个辅助类提供了创建Bitmap的接口,而这个类的实现通过

Bitmap类

一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下: 1. GetPixel方法和SetPixel方法:获取和设置一个图像的指定像素的颜色. 2. PixelFormat属性:返回图像的像素格式. 3. Palette属性:获取和设置图像所使用的颜色调色板. 4. Height Width属性:返回图像的高度和宽度. 5. LockBits方法和UnlockBits

Android图像处理之Bitmap类(1)

Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件.本文从应用的角度,着重介绍怎么用Bitmap来实现这些功能. 一.Bitmap的生成 1.1 BitmapFactory decode出Bitmap    Bitmap实现在android.graphics包中.但是Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化.这必然是 某个辅助类提供了创建Bitmap的接口,而这个类的实

OpenCV(C++接口)学习笔记2-像素级的图像操作

1.通过成员函数at(int y, int x)访问 这种方法需要知道像素保存的格式. (1) 这是为模板类型的函数,因为一个函数的返回类型只有在运行时才会知道. (2)这个函数返回的是一个向量即Vector,故有下标的操作. image.at<uchar>(j,i)= 255; 在单通道图像中,采用以上语句可以获取图像(i,j)处的灰度值(注:先行后列,一般用j表示行(rows),i表示列(cols)).如果是灰度图像的话,只需要更改一个数据就可以了.如果是rgb图像的话,就要用"