C#将wbmp格式图片转为jpg的图片
2011-10-25 18:29
429 查看
C#将wbmp格式图片转为jpg的图片。给个能直接用的方法加100分。具体代码如下:
添加引用
using System.IO;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
添加一个openFileDialog1,一个saveFileDialog1和一个pictureBox1,执行函数后显示图像并保存
private void openWBmp()
{
this.openFileDialog1.Filter = "Wbmp Files(*.wbmp)|*.wbmp";
if (this.openFileDialog1.ShowDialog()== DialogResult.OK)
{
byte[] datas = File.ReadAllBytes(this.openFileDialog1.FileName);
byte tmp;
int width=0, height=0,offset=2;
do
{
tmp = datas[offset++];
width = (width << 7) | (tmp & 0x7f);
} while ((tmp & 0x80) != 0);
do
{
tmp = datas[offset++];
height = (height << 7) | (tmp & 0x7f);
} while ((tmp & 0x80) != 0);
Bitmap bmp = new Bitmap(width, height, PixelFormat.Format8bppIndexed);
BitmapData bd = bmp.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, bmp.PixelFormat);
int stride=(width+7)>>3;
byte[] tmpdata = new byte[height * width];
for (int i = 0; i < height;i++ )
{
int pos = stride*i;
byte mask = 0x80;
for (int j = 0; j < width;j++ )
{
if ((datas[offset + pos] & mask )== 0)
tmpdata[i*width+j] = 0;
else
tmpdata[i*width+j] = 0xff;
mask >>= 1;
if (mask == 0)
{
mask = 0x80;
pos++;
}
}
}
System.Runtime.InteropServices.Marshal.Copy(tmpdata, 0, bd.Scan0, tmpdata.Length);
bmp.UnlockBits(bd);
this.pictureBox1.Image = bmp;
this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
if (this.saveFileDialog1.ShowDialog()== DialogResult.OK)
{
bmp.Save(this.saveFileDialog1.FileName);
}
}
}
添加引用
using System.IO;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
添加一个openFileDialog1,一个saveFileDialog1和一个pictureBox1,执行函数后显示图像并保存
private void openWBmp()
{
this.openFileDialog1.Filter = "Wbmp Files(*.wbmp)|*.wbmp";
if (this.openFileDialog1.ShowDialog()== DialogResult.OK)
{
byte[] datas = File.ReadAllBytes(this.openFileDialog1.FileName);
byte tmp;
int width=0, height=0,offset=2;
do
{
tmp = datas[offset++];
width = (width << 7) | (tmp & 0x7f);
} while ((tmp & 0x80) != 0);
do
{
tmp = datas[offset++];
height = (height << 7) | (tmp & 0x7f);
} while ((tmp & 0x80) != 0);
Bitmap bmp = new Bitmap(width, height, PixelFormat.Format8bppIndexed);
BitmapData bd = bmp.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, bmp.PixelFormat);
int stride=(width+7)>>3;
byte[] tmpdata = new byte[height * width];
for (int i = 0; i < height;i++ )
{
int pos = stride*i;
byte mask = 0x80;
for (int j = 0; j < width;j++ )
{
if ((datas[offset + pos] & mask )== 0)
tmpdata[i*width+j] = 0;
else
tmpdata[i*width+j] = 0xff;
mask >>= 1;
if (mask == 0)
{
mask = 0x80;
pos++;
}
}
}
System.Runtime.InteropServices.Marshal.Copy(tmpdata, 0, bd.Scan0, tmpdata.Length);
bmp.UnlockBits(bd);
this.pictureBox1.Image = bmp;
this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
if (this.saveFileDialog1.ShowDialog()== DialogResult.OK)
{
bmp.Save(this.saveFileDialog1.FileName);
}
}
}
相关文章推荐
- C# 将截屏图片jpg转为YUV格式,再进行H264压缩成视频,求思路,求源码?
- c#实现把汉字转为带田字格背景的jpg图片
- php 将bmp图片转为jpg等其他任意格式的图片
- php 将bmp图片转为jpg等其他任意格式的图片
- C# 判断图形文件(GIF,JPG,PNG)的图片格式的方法
- 如何用C#将tif格式的图片转化成jpg?
- php 将bmp图片转为jpg等其他任意格式的图片
- C# 文件关联 (jpg等图片格式为例)
- [转载]C#图片格式(JPG,BMP,PNG,GIF)等转换为ICO图标
- C# 图片格式(JPG,BMP,PNG,GIF)等转换为ICO图标
- C# Bitmap/png转成jpg格式,压缩图片
- C# 判断图形文件(GIF,JPG,PNG)的图片格式的方法
- C# 判断图形文件(GIF,JPG,PNG)的图片格式的方法
- 使用Java语言将 jpg 格式图片转为 ppm 格式图片
- c#判断图形文件(GIF,JPG,PNG)的图片格式的方法
- MNIST数据集转为.jpg图片格式
- php 将bmp图片转为jpg等其他任意格式的图片
- C# 图片格式(JPG,BMP,PNG,GIF)等转换为ICO图标
- python将.ppm格式图片转换成.jpg格式文件
- C#语言之“string格式的日期时间字符串转为DateTime类型”的方法