c# 如何生成自定义图片?c# 生成自定义图片方法
导读:收集整理的这篇文章主要介绍了c# 如何生成自定义图片?c# 生成自定义图片方法,觉得挺不错的,现在分享给大家,也给大家做个参考。本篇文章给大家带来的内容是关于c# 如何生成自定义图片?c# 生成自定义图片方法,有一定的参考价值,有需要的朋友...
收集整理的这篇文章主要介绍了c# 如何生成自定义图片?c# 生成自定义图片方法,觉得挺不错的,现在分享给大家,也给大家做个参考。本篇文章给大家带来的内容是关于c# 如何生成自定义图片?c# 生成自定义图片方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
using System;
namespace treads{
/// summary>
/// 生成略缩图 /// /summary>
public class Class2 {
PRivate Image srcImage;
private string srCFileName= @"X";
//获取图片的路径 private string srcFileName1 = @"x";
//要保持图片的新路径 /// summary>
/// 回调 /// /summary>
/// returns>
/returns>
public bool ThumbnailCallback() {
return false;
}
/// summary>
/// 保存缩略图 /// /summary>
/// param name="Width">
/param>
/// param name="Height">
/param>
public void SaveThumbnailImage(int Width, int Height) {
swITch (Path.GetExtension(srcFileName).ToLower()) {
case ".png": SaveImage(Width, Height, ImageFormat.Png);
break;
case ".gif": SaveImage(Width, Height, ImageFormat.Gif);
break;
default: SaveImage(Width, Height, ImageFormat.JPEg);
break;
}
}
/// summary>
/// 生成缩略图并保存 /// /summary>
/// param name="Width">
缩略图的宽度/param>
/// param name="Height">
缩略图的高度/param>
/// param name="imgformat">
保存的图像格式/param>
/// returns>
缩略图的Image对象/returns>
public void SaveImage(int Width, int Height, ImageFormat imgformat) {
srcImage = Image.FromFile(srcFileName);
if (imgformat != ImageFormat.Gif &
&
(srcImage.Width >
Width) || (srcImage.Height >
Height)) {
Image img;
Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
img = srcImage.GetThumbnailImage(Width, Height, callb, IntPtr.Zero);
srcImage.Dispose();
img.Save(srcFileName1, imgformat);
img.Dispose();
}
}
}
}
制作网络下载的略缩图
/// summary>
/// 制作远程缩略图 /// /summary>
/// param name="url">
图片URL/param>
/// param name="newFileName">
新图路径/param>
/// param name="maxWidth">
最大宽度/param>
/// param name="maxHeight">
最大高度/param>
public static void MakeRemoteThumbnailImage(string url, string newFileName, int maxWidth, int maxHeight) {
Stream stream = GetRemoteImage(url);
if (stream == null) return;
Image original = Image.FromStream(stream);
stream.Close();
MakeThumbnailImage(original, newFileName, maxWidth, maxHeight);
}
/// summary>
/// 获取图片流 /// /summary>
/// param name="url">
图片URL/param>
/// returns>
/returns>
private static Stream GetRemoteImage(string url) {
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "GET";
request.ContentLength = 0;
request.Timeout = 20000;
HttpWebResponse response = null;
try {
response = (HttpWebResponse)request.GetResponse();
return response.GetResponseStream();
}
catch {
return null;
}
}
/// summary>
/// 裁剪图片并保存 /// /summary>
/// param name="fileName">
源图路径(绝对路径)/param>
/// param name="newFileName">
缩略图路径(绝对路径)/param>
/// param name="maxWidth">
缩略图宽度/param>
/// param name="maxHeight">
缩略图高度/param>
/// param name="cropWidth">
裁剪宽度/param>
/// param name="cropHeight">
裁剪高度/param>
/// param name="X">
X轴/param>
/// param name="Y">
Y轴/param>
public static bool MakeThumbnailImage(string fileName, string newFileName, int maxWidth, int maxHeight, int cropWidth, int cropHeight, int X, int Y) {
byte[] imageBytes = File.ReadAllBytes(fileName);
Image originalImage = Image.FromStream(new System.IO.MemoryStream(imageBytes));
Bitmap b = new Bitmap(cropWidth, cropHeight);
try {
using (Graphics g = Graphics.FromImage(b)) {
//设置高质量插值法 g.InterpolationMode = InterpolationMode.HighQualityBicubic;
//设置高质量,低速度呈现平滑程度 g.SmoothingMode = SmoothingMode.AntiAlias;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
//清空画布并以透明背景色填充 g.Clear(Color.Transparent);
//在指定位置并且按指定大小绘制原图片的指定部分 g.DrawImage(originalImage, new Rectangle(0, 0, cropWidth, cropHeight), X, Y, cropWidth, cropHeight, GraphicsUnit.Pixel);
Image displayImage = new Bitmap(b, maxWidth, maxHeight);
SaveImage(displayImage, newFileName, GetCodecInfo("image/" + GetFormat(newFileName).ToString().ToLower()));
return true;
}
}
catch (System.Exception e) {
throw e;
}
finally {
originalImage.Dispose();
b.Dispose();
}
}
以上就是对c# 如何生成自定义图片?c# 生成自定义图片方法的全部介绍,如果您想了解更多有关C++视频教程,请关注PHP中文网。
以上就是c# 如何生成自定义图片?c# 生成自定义图片方法的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: c# 如何生成自定义图片?c# 生成自定义图片方法
本文地址: https://pptw.com/jishu/593193.html
