国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

c# .net linux ImageSharp+FastDFS+Base64上傳圖片,壓縮圖片大小,圖像處理dcoker中使用也可以

這篇具有很好參考價值的文章主要介紹了c# .net linux ImageSharp+FastDFS+Base64上傳圖片,壓縮圖片大小,圖像處理dcoker中使用也可以。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

.net?以前是用System.Drawing來處理圖片,但是在dcoker 、linux上用不了

微軟官方推薦用

1、SkiaSharp

如果項目運(yùn)行到docker里,需要NUGET安裝SkiaSharp.NativeAssets.Linux.NoDependencies

注意:如果你同時引用SkiaSharp.NativeAssets.Linux和SkiaSharp.NativeAssets.Linux.NoDependencies?可能會導(dǎo)致docker中運(yùn)行報錯,記得只能引用一個SkiaSharp.NativeAssets.Linux.NoDependencies

2、ImageSharp?

我感覺這個用起來簡單一些

nuget安裝SixLabors.ImageSharp

使用:

這里用ImageSharp?為例子

我這里是通過jquery蔣圖片轉(zhuǎn)為base64 ,用法見jquery把圖片路徑轉(zhuǎn)成base64_mob649e815e258d的技術(shù)博客_51CTO博客

新建controller,接收前端提交過來的base64,并返回上傳后的文件名

  public string addFileToServer(string base64stringdata, string oldfilename)
        {
            
            byte[] imgBytes;
            if (base64stringdata.Contains(","))
            {
                 //前端用jQuery將圖片路徑轉(zhuǎn)換為base64的話,這里需要 
                // 或者在jquery取值時先將Data URL轉(zhuǎn)換為base64字符串var base64String = dataURL.split(",")[1];
                imgBytes = Convert.FromBase64String(base64stringdata.Remove(0, base64stringdata.IndexOf(',') + 1));
            }
            else
            {
                imgBytes = Convert.FromBase64String(base64stringdata);
            }
            //取后綴名
            string strext =  System.IO.Path.GetExtension(oldfilename);

            if (strext == ".jpg" || strext == ".gif" || strext == ".jpeg" || strext == ".bmp" || strext == ".png")
            { //圖片自動壓縮 并上傳       

                 imgBytes = ImageSharpTools.ImageReSise(imgBytes, strext, 800, 800);
            }
            //上傳文件
             string    returnFileName = new FastDFSNetCoreHelper().Upload(imgBytes, strext);
             return returnFileName ;
        }

nuget安裝SixLabors.ImageSharp

新建類 ImageSharpTools.cs

 public class ImageSharpTools
    {
        /// <summary>
        /// 調(diào)整圖片尺寸
        /// </summary>
        /// <param name="imageBytes">字節(jié)流</param>
        /// <param name="ext">后綴名</param>
        /// <param name="towidth">設(shè)置寬度</param>
        /// <param name="toheight">設(shè)置高度</param>
        /// <returns></returns>
        public static byte[] ImageReSise(byte[] imageBytes,string ext,int towidth,int toheight)
        {
            var image = Image.Load(imageBytes);

            int imageWidh = image.Width;
            int imageHight = image.Height;

            if (imageWidh > imageHight)
            {//如果寬大于高,調(diào)整比例
                if (imageWidh > towidth)
                {
                    toheight = (int)(imageHight * ((double)towidth / (double)imageWidh));
                    imageWidh = towidth;
                }
                else
                {
                    towidth = imageWidh;
                }
            }
            if (imageWidh < imageHight)
            { //如果寬小于高,調(diào)整比例
                if (imageHight > toheight)
                {
                    towidth = (int)(imageWidh * ((double)toheight / (double)imageHight));
                    imageHight = toheight;
                }
                else
                {
                    toheight = imageHight;
                }
            }

            //調(diào)整圖片尺寸
            image.Mutate(x => x.Resize(towidth, toheight, KnownResamplers.Spline));
            MemoryStream ms = new MemoryStream();
            image.SaveAsPngAsync(ms);
            var byteFile = ms.ToArray();
            ms.Close();
            ms.Dispose();
            image.Dispose();
            return byteFile;
        }
}

nuget安裝FastDFSNetCore

新建類:FastDFSNetCoreHelper.cs

using FastDFS.Client;
using System.Net;

public class FastDFSNetCoreHelper
    {
        public string Upload(byte[] imgBytes, string ext)
        {
            if (ext.Contains("."))
            {
                ext = ext.Replace(".", "");
            }           
            List<IPEndPoint> pEndPoints = new List<IPEndPoint>()
            {
                //設(shè)置dfs的服務(wù)器地址和端口
                new IPEndPoint(IPAddress.Parse("10.112.250.130"), 2315)
            };
            ConnectionManager.Initialize(pEndPoints);
            StorageNode storageNode = FastDFSClient.GetStorageNodeAsync().Result;
            var str = FastDFSClient.UploadFileAsync(storageNode, imgBytes, ext);
            return "/" + storageNode.GroupName + "/" + str.Result.ToString();
        }
    }

完美OK文章來源地址http://www.zghlxwxcb.cn/news/detail-726407.html

到了這里,關(guān)于c# .net linux ImageSharp+FastDFS+Base64上傳圖片,壓縮圖片大小,圖像處理dcoker中使用也可以的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 將html字符串中的base64圖片轉(zhuǎn)換成file并上傳

    目的 解決富文本編輯器中復(fù)制粘貼的圖片 base64 字符串過長導(dǎo)致無法存儲到數(shù)據(jù)庫的問題 思路 通過正則 獲取html字符串中里面的所有圖片 base64 數(shù)組 然后每個圖片base64 轉(zhuǎn)成file 使用上傳文件的函數(shù) 上傳到服務(wù)器上. 將上傳后獲取到的圖片訪問url 替換成 數(shù)據(jù)里面的 img 的 src

    2024年01月23日
    瀏覽(57)
  • naive UI 的upload組件自定義手動上傳圖片的base64位

    網(wǎng)上發(fā)現(xiàn)還是element plus的資料比較多,其實(shí)這些組件都大同小異,記錄一下方便以后使用。

    2024年02月07日
    瀏覽(23)
  • 【vue】 Tinymce 富文本編輯器 不想讓上傳的圖片轉(zhuǎn)換成base64,而是鏈接

    【vue】 Tinymce 富文本編輯器 不想讓上傳的圖片轉(zhuǎn)換成base64,而是鏈接

    前言:最近項目上需要使用富文本編輯器,覺得tinymce很不錯就用了,具體怎么在項目中使用參考 【vue】 vue2 中使用 Tinymce 富文本編輯器 【vue】 Tinymce 數(shù)據(jù) 回顯問題 | 第一次正?;仫@后面,顯示空白bug不能編輯 這兩天又遇到了新的問題,圖片上傳后是看地址欄發(fā)現(xiàn)是base64的

    2024年02月14日
    瀏覽(307)
  • 微信小程序選擇本地圖片、視頻的最新方法chooseMedia,轉(zhuǎn)為為base64上傳到后端接口

    微信小程序選擇本地圖片、視頻的最新方法chooseMedia,轉(zhuǎn)為為base64上傳到后端接口

    微信的api變動還是挺大的,之前選擇圖片的api wx.chooseImage 已被棄用,改為了 wx.chooseMedia ,本篇將介紹如何使用最新方法 wx.chooseMedia 進(jìn)行選擇圖片上傳并回顯,以及轉(zhuǎn)為為base64上傳到后端接口 wxml wxss js 上傳成功后,會返回一個數(shù)組,里面有圖片的 本地臨時路徑 效果圖: 有

    2023年04月20日
    瀏覽(25)
  • 20.1 OpenSSL 字符BASE64壓縮算法

    20.1 OpenSSL 字符BASE64壓縮算法

    OpenSSL 是一種開源的加密庫,提供了一組用于加密和解密數(shù)據(jù)、驗證數(shù)字證書以及實(shí)現(xiàn)各種安全協(xié)議的函數(shù)和工具。它可以用于創(chuàng)建和管理公鑰和私鑰、數(shù)字證書和其他安全憑據(jù),還支持 SSL/TLS 、 SSH 、 S/MIME 、 PKCS 等常見的加密協(xié)議和標(biāo)準(zhǔn)。 OpenSSL 的功能非常強(qiáng)大,可以用于

    2024年02月08日
    瀏覽(25)
  • YOLOv8 測試 5:Linux 中 Docker 部署 YOLOv8,Python 封裝 API 接口,base64 圖片處理

    YOLOv8 測試 5:Linux 中 Docker 部署 YOLOv8,Python 封裝 API 接口,base64 圖片處理

    記錄時間 [2024-4-14] 系列文章簡摘: Docker 學(xué)習(xí)筆記(二):在 Linux 中部署 Docker(Centos7 下安裝 docker、環(huán)境配置,以及鏡像簡單使用) API 接口簡單使用(二):Python 中使用 Flask(接口封裝整理版,含文件上傳接口的詳細(xì)實(shí)現(xiàn)) YOLOv8 測試 3:在 Python 中將 YOLOv8 模型封裝成 A

    2024年04月29日
    瀏覽(20)
  • java fastdfs實(shí)現(xiàn)文件(圖片)的上傳下載
  • Django_自定義文件存儲類并將圖片上傳到FastDFS

    Django_自定義文件存儲類并將圖片上傳到FastDFS

    目錄 將圖片到FastDFS和瀏覽的流程圖 使用自定義文件存儲類 1、定義存儲類 2、創(chuàng)建FastDFS的配置文件 3、修改settings.py配置 4、上傳圖片進(jìn)行驗證 4.1 定義一個包含ImageField字段的模型類 4.2 登錄django的admin后臺 4.3 上傳圖片 4.4 查看圖片 源碼等資料獲取方法 先部署好FastDFS,這個以

    2024年02月15日
    瀏覽(371)
  • 【base64】JavaScript&uniapp 將圖片轉(zhuǎn)為base64并展示

    【base64】JavaScript&uniapp 將圖片轉(zhuǎn)為base64并展示

    Base64是一種用于編碼二進(jìn)制數(shù)據(jù)的方法,它將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為文本字符串。它的主要目的是在網(wǎng)絡(luò)傳輸或存儲過程中,通過將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為可打印字符的形式進(jìn)行傳輸 ?圖片大小從1.36MB到169kb 上面的代碼中,toDataURL產(chǎn)生的是圖片的base64編碼,Base64編碼必須是完整且正確

    2024年02月11日
    瀏覽(27)
  • Base64轉(zhuǎn)二進(jìn)制文件流以及轉(zhuǎn)File、圖片轉(zhuǎn)Base64、二進(jìn)制流轉(zhuǎn)Base64

    1、Base64轉(zhuǎn)二進(jìn)制文件流 方法一: 調(diào)用示例: 方法二: 調(diào)用示例: ?2、Base64轉(zhuǎn)File 方法一: 調(diào)用示例: 方法二: 調(diào)用示例: 補(bǔ)充: 3、圖片轉(zhuǎn)Base64 調(diào)用示例: 4、二進(jìn)制流轉(zhuǎn)Base64 方法一: 調(diào)用示例: 方法二: 調(diào)用示例: 5、補(bǔ)充 5.1?atob() atob() ?對經(jīng)過 base-64 編碼的字符

    2024年02月04日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包