首页后端开发ASP.NETc# 如何生成自定义图片?c# 生成自定义图片方法

c# 如何生成自定义图片?c# 生成自定义图片方法

时间2024-01-30 23:41:03发布访客分类ASP.NET浏览854
导读:收集整理的这篇文章主要介绍了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
详细介绍C# 中 ASP.NET Web API 的 ROC jq怎么去掉html标签

游客 回复需填写必要信息