最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)根據(jù)圖片的鏈接地址獲取圖片的后綴名

 更新時間:2023年02月15日 10:29:55   作者:£冷☆月№  
這篇文章主要為大家詳細介紹了C#如何實現(xiàn)根據(jù)圖片的鏈接地址獲取圖片的后綴名,文中的實現(xiàn)方法講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下

某天一朋友突然發(fā)來一個地址,問我怎么獲取這張圖片的后綴名??

將代碼放在下面以供參考:

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Net;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            var imgUrl = "http://emoji.qpic.cn/wx_emoji/haiannhLHhY7B1tX6eZ2BGNh9kzx3VCQ2MJfSQkSgE47sEXofVVoPCiaZKYbPcyQhS/";
            var imgByte = GetBytesFromUrl(imgUrl);
            if (imgByte.Length > 0)
            {
                var image = BytesToImage(imgByte);
                if (image != null)
                {
                    var mimeType = GetMimeType(image);
                    if (!string.IsNullOrEmpty(mimeType))
                    {
                        var fileName = AppDomain.CurrentDomain.BaseDirectory + "\\imgses\\" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "." + mimeType;
                        CreateImageFromBytes(fileName, imgByte);
                    }
                }
            }
        }

        /// <summary>
        /// 將http路徑圖片轉(zhuǎn)為byte字節(jié)數(shù)據(jù)
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static byte[] GetBytesFromUrl(string url)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            byte[] bytes;
            using (Stream stream = request.GetResponse().GetResponseStream())
            {
                using (MemoryStream mstream = new MemoryStream())
                {
                    int count = 0;
                    byte[] buffer = new byte[1024];
                    int readNum = 0;
                    while ((readNum = stream.Read(buffer, 0, 1024)) > 0)
                    {
                        count = count + readNum;
                        mstream.Write(buffer, 0, readNum);
                    }
                    mstream.Position = 0;
                    using (BinaryReader br = new BinaryReader(mstream))
                    {
                        bytes = br.ReadBytes(count);
                    }
                }
            }
            return bytes;
        }

        /// <summary>
        /// 將byte字節(jié)數(shù)據(jù)轉(zhuǎn)為Image圖片
        /// </summary>
        /// <param name="bytes">字節(jié)數(shù)組</param>
        /// <returns>圖片</returns>
        public static Image BytesToImage(byte[] bytes)
        {
            Image image = null;
            using (MemoryStream ms = new MemoryStream(bytes))
            {
                ms.Write(bytes, 0, bytes.Length);
                image = Image.FromStream(ms, true);
            }
            return image;
        }
        
        /// <summary>
        /// 將Image圖片轉(zhuǎn)為byte字節(jié)數(shù)據(jù)
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        public static byte[] ImageToBytes(Image image)
        {
            byte[] bt = null;
            if (!image.Equals(null))
            {
                using (MemoryStream mostream = new MemoryStream())
                {
                    Bitmap bmp = new Bitmap(image);
                    bmp.Save(mostream, ImageFormat.Bmp);//將圖像以指定的格式存入緩存內(nèi)存流
                    bt = new byte[mostream.Length];
                    mostream.Position = 0;//設(shè)置留的初始位置
                    mostream.Read(bt, 0, Convert.ToInt32(bt.Length));
                }
            }
            return bt;
        }

        /// <summary>
        /// 根據(jù)Image圖片獲取圖片類型
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        public static string GetMimeType(Image image)
        {
            var mimeType = "";
            var ImageCodec = ImageCodecInfo.GetImageDecoders();
            foreach (var item in ImageCodec)
            {
                if (item.FormatID == image.RawFormat.Guid)
                {
                    mimeType = item.MimeType.Split('/')[1];
                    break;
                }
            }
            return mimeType;
        }

        /// <summary>
        /// 將byte[]圖片保存到指定文件
        /// </summary>
        /// <param name="fileName">保存的完整路徑(包含文件名)</param>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static void CreateImageFromBytes(string fileName, byte[] bytes)
        {
            string file = fileName;
            FileInfo info = new FileInfo(fileName);
            Directory.CreateDirectory(info.Directory.FullName);
            File.WriteAllBytes(file, bytes);
        }
    }
}

到此這篇關(guān)于C#實現(xiàn)根據(jù)圖片的鏈接地址獲取圖片的后綴名的文章就介紹到這了,更多相關(guān)C#獲取圖片后綴名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

增城市| 内乡县| 太湖县| 青州市| 姚安县| 扎鲁特旗| 东丰县| 北宁市| 那曲县| 日喀则市| 怀集县| 怀化市| 剑河县| 揭西县| 扶风县| 无锡市| 逊克县| 余庆县| 池州市| 新竹县| 麻江县| 板桥市| 曲阜市| 金华市| 武定县| 灵武市| 项城市| 远安县| 永清县| 鄂托克前旗| 乐昌市| 福泉市| 孟村| 绵阳市| 昭苏县| 原平市| 牡丹江市| 平原县| 宁波市| 赣州市| 关岭|