懒得勤快 пре 6 година
родитељ
комит
f73627f5cb

+ 5 - 57
Masuit.Tools.Core/Media/ImageUtilities.cs

@@ -4,8 +4,6 @@ using System.Drawing.Drawing2D;
 using System.Drawing.Imaging;
 using System.IO;
 using System.Linq;
-using System.Net.Http;
-using System.Net.Http.Headers;
 using System.Threading.Tasks;
 
 namespace Masuit.Tools.Media
@@ -753,7 +751,7 @@ namespace Masuit.Tools.Media
         /// <param name="width">缩略图宽度</param>
         /// <param name="height">缩略图高度</param>
         /// <param name="mode">生成缩略图的方式</param>    
-        public static void MakeThumbnail(this Image originalImage, string thumbnailPath, int width, int height, string mode)
+        public static void MakeThumbnail(this Image originalImage, string thumbnailPath, int width, int height, ThumbnailCutMode mode)
         {
             int towidth = width;
             int toheight = height;
@@ -765,15 +763,15 @@ namespace Masuit.Tools.Media
 
             switch (mode)
             {
-                case "HW": //指定高宽缩放(可能变形)                
+                case ThumbnailCutMode.Fixed: //指定高宽缩放(可能变形)                
                     break;
-                case "W": //指定宽,高按比例                    
+                case ThumbnailCutMode.LockWidth: //指定宽,高按比例                    
                     toheight = originalImage.Height * width / originalImage.Width;
                     break;
-                case "H": //指定高,宽按比例
+                case ThumbnailCutMode.LockHeight: //指定高,宽按比例
                     towidth = originalImage.Width * height / originalImage.Height;
                     break;
-                case "Cut": //指定高宽裁减(不变形)                
+                case ThumbnailCutMode.Cut: //指定高宽裁减(不变形)                
                     if (originalImage.Width / (double)originalImage.Height > towidth / (double)toheight)
                     {
                         oh = originalImage.Height;
@@ -1182,55 +1180,5 @@ namespace Masuit.Tools.Media
             }
             return bmp2;
         }
-
-        /// <summary>
-        /// 上传图片到百度图床
-        /// </summary>
-        /// <param name="stream"></param>
-        /// <returns></returns>
-        public static async Task<string> UploadImageAsync(Stream stream)
-        {
-            using (HttpClient httpClient = new HttpClient()
-            {
-                BaseAddress = new Uri("https://sm.ms"),
-            })
-            {
-                httpClient.DefaultRequestHeaders.UserAgent.Add(ProductInfoHeaderValue.Parse("Mozilla/5.0"));
-                using (var bc = new StreamContent(stream))
-                {
-                    bc.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
-                    {
-                        FileName = "1.jpg",
-                        Name = "smfile"
-                    };
-                    bc.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg");
-                    using (var content = new MultipartFormDataContent { bc })
-                    {
-                        return await await httpClient.PostAsync("/api/upload", content).ContinueWith(async t =>
-                        {
-                            if (t.IsCanceled || t.IsFaulted)
-                            {
-                                Console.WriteLine("发送请求出错了" + t.Exception);
-                                return string.Empty;
-                            }
-                            var res = await t;
-                            if (res.IsSuccessStatusCode)
-                            {
-                                string s = await res.Content.ReadAsStringAsync();
-                                //var token = JObject.Parse(s);
-                                //if ((int)token["errno"] == 0)
-                                //{
-                                //    s = (string)token["data"]["imageUrl"];
-                                //    return s;
-                                //}
-                                //s = (string)token["errmsg"];
-                                return s;
-                            }
-                            return string.Empty;
-                        });
-                    }
-                }
-            }
-        }
     } //end class
 }

+ 28 - 0
Masuit.Tools.Core/Media/ThumbnailCutMode.cs

@@ -0,0 +1,28 @@
+namespace Masuit.Tools.Media
+{
+    /// <summary>
+    /// 图像裁剪模式
+    /// </summary>
+    public enum ThumbnailCutMode
+    {
+        /// <summary>
+        /// 锁定高度
+        /// </summary>
+        LockHeight,
+
+        /// <summary>
+        /// 锁定宽度
+        /// </summary>
+        LockWidth,
+
+        /// <summary>
+        /// 固定宽高
+        /// </summary>
+        Fixed,
+
+        /// <summary>
+        /// 裁剪
+        /// </summary>
+        Cut
+    }
+}

+ 1 - 0
Masuit.Tools.Core/Net/CallContext.cs

@@ -10,6 +10,7 @@ namespace Masuit.Tools.Core.Net
     public static class CallContext<T>
     {
         static ConcurrentDictionary<string, AsyncLocal<T>> state = new ConcurrentDictionary<string, AsyncLocal<T>>();
+
         /// <summary>
         /// 设置值
         /// </summary>

+ 2 - 2
Masuit.Tools.Core/Net/HttpContext2.cs

@@ -3,14 +3,14 @@
 namespace Masuit.Tools.Core.Net
 {
     /// <summary>
-    /// 实现类似于.NET Framework中的HttpContext静态对象,使用前需要在Startup中注入,ConfigureServices方法中:services.AddHttpContextAccessor();,Configure方法中:app.UseStaticHttpContext();
+    /// 实现类似于.NET Framework中的HttpContext静态对象,使用前需要在Startup中注入,ConfigureServices方法中:services.AddStaticHttpContext();,Configure方法中:app.UseStaticHttpContext();
     /// </summary>
     public static class HttpContext2
     {
         private static IHttpContextAccessor _accessor;
 
         /// <summary>
-        /// 获取当前禽求上下文,使用前需要在Startup中注入,ConfigureServices方法中:services.AddHttpContextAccessor();,Configure方法中:app.UseStaticHttpContext();
+        /// 获取当前禽求上下文,使用前需要在Startup中注入,ConfigureServices方法中:services.AddStaticHttpContext();,Configure方法中:app.UseStaticHttpContext();
         /// </summary>
         public static HttpContext Current => _accessor.HttpContext;
 

+ 1 - 1
Masuit.Tools.Core/Net/StaticHttpContextExtensions.cs

@@ -13,7 +13,7 @@ namespace Masuit.Tools.Core.Net
         /// 注入HttpContext静态对象,方便在任意地方获取HttpContext,services.AddHttpContextAccessor();
         /// </summary>
         /// <param name="services"></param>
-        public static void AddHttpContextAccessor(this IServiceCollection services)
+        public static void AddStaticHttpContext(this IServiceCollection services)
         {
             services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
         }

+ 3 - 4
NetCoreTest/Controllers/HomeController.cs

@@ -1,5 +1,4 @@
 using Masuit.Tools.Core.NoSQL;
-using Masuit.Tools.Files;
 using Masuit.Tools.NoSQL;
 using Microsoft.AspNetCore.Mvc;
 
@@ -10,9 +9,9 @@ namespace NetCoreTest.Controllers
         public RedisHelper RedisHelper { get; set; }
         public HomeController(RedisHelperFactory redisHelperFactory)
         {
-            RedisHelper=redisHelperFactory.Create("aa",0);// 创建命名为aa的RedisHelper,指定数据库0
-            RedisHelper=redisHelperFactory.CreateDefault(0); // 创建默认的RedisHelper,指定数据库0
-            RedisHelper=redisHelperFactory.CreateLocal(0); // 创建连接本机的RedisHelper,指定数据库0
+            RedisHelper = redisHelperFactory.Create("aa", 0);// 创建命名为aa的RedisHelper,指定数据库0
+            RedisHelper = redisHelperFactory.CreateDefault(0); // 创建默认的RedisHelper,指定数据库0
+            RedisHelper = redisHelperFactory.CreateLocal(0); // 创建连接本机的RedisHelper,指定数据库0
         }
     }
 }

+ 8 - 1
NetCoreTest/Program.cs

@@ -1,5 +1,9 @@
-using Microsoft.AspNetCore;
+using System;
+using Masuit.Tools.Media;
+using Microsoft.AspNetCore;
 using Microsoft.AspNetCore.Hosting;
+using System.Drawing;
+using Masuit.Tools.Win32;
 
 namespace NetCoreTest
 {
@@ -7,6 +11,9 @@ namespace NetCoreTest
     {
         public static void Main(string[] args)
         {
+            Random rnd = new Random();
+            int num = rnd.StrictNext();//产生真随机数
+            double gauss = rnd.NextGauss(20,5);//产生正态分布的随机数
             CreateWebHostBuilder(args).Build().Run();
         }
 

+ 3 - 5
NetCoreTest/Startup.cs

@@ -1,4 +1,4 @@
-using Masuit.Tools.Core.NoSQL;
+using Masuit.Tools.Core.Net;
 using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Mvc;
@@ -19,9 +19,7 @@ namespace NetCoreTest
         // This method gets called by the runtime. Use this method to add services to the container.
         public void ConfigureServices(IServiceCollection services)
         {
-            services.AddDefaultRedisHelper("192.168.16.145:6379,password=xilife2018,connectTimeout=1000,connectRetry=1,syncTimeout=1000");//注入一个默认实例
-            services.AddLocalRedisHelper();// 注入本地实例
-            services.AddRedisHelper("aa", "192.168.16.145:6379,password=xilife2018,connectTimeout=1000,connectRetry=1,syncTimeout=1000");// 通用注入
+            services.AddStaticHttpContext();
             services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
         }
 
@@ -32,7 +30,7 @@ namespace NetCoreTest
             {
                 app.UseDeveloperExceptionPage();
             }
-
+            app.UseStaticHttpContext();
             app.UseMvcWithDefaultRoute();
         }
     }