在網上找了很多種圖片轉base64編碼的代碼,而且這幾種代碼把圖片轉換過后的base64碼大小都不一樣,尋求一種能把base64碼轉小一點的代碼!
uj5u.com熱心網友回復:
別人的base64:data:image/jpg;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7
uj5u.com熱心網友回復:
我的:data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBaRXhpZgAATU0AKgAAAAgABQMBAAUAAAABAAAASgMDAAEAAAABAAAAAFEQAAEAAAABAQAAAFERAAQAAAABAAAAAFESAAQAAAABAAAAAAAAAAAAAYagAACxj//bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicgIiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAA4AEAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APULPdf2qzRWtu1wEXfcNIUl8wqGJBCNx8w46dsY4p15qOpaOv2y4mSS2iUtLGXDMVyoyuI1wRnvnNUprTWdKmkt7M2TwBgVaVnDfdC84GOiiqt1Z69q0X2SdtPjim/dOys7EAspJAwOfl9e9eLSp4qDSt+P/BOuTpvr+Z//2Q==
uj5u.com熱心網友回復:
你先將圖片保存壓縮成Jpg,然后再生成base64格式就小了uj5u.com熱心網友回復:
你圖片多大,base64相對的也就會有多大uj5u.com熱心網友回復:
因為別人的圖片是gif格式的uj5u.com熱心網友回復:
其實說到底結果取決于源檔案格式決定壓縮比
大小決定轉換的結果長度
就拿你列出的兩個圖片
別人的只有177位元組
而你的有871位元組
結果當然會不同
而且編碼是沒有壓縮這么個說法的
所以從源檔案入手才是解決問題的關鍵
uj5u.com熱心網友回復:
我改成jph格式轉base64,轉出來還是比人家的大!
uj5u.com熱心網友回復:
別人的base64 碼把他轉成圖片后,保存圖片,然后我再轉的base64,png格式和jpg格式我都轉了,還是比別人的大很多
uj5u.com熱心網友回復:
我把那張圖片轉成了gif的,然后轉出來還是比他的base64大,而且很奇怪,同一張圖片,我在網上找了一些在線轉base64的網址,然后就有了好幾份不一樣的base64碼
uj5u.com熱心網友回復:
都不知道你在問什么,大小和base64沒半毛錢關系uj5u.com熱心網友回復:
我的意思是,別人轉出來的base64長度要比我轉出來的base64的長度要小!
uj5u.com熱心網友回復:
+1
'別人'的圖片解碼后,有GIF89a的檔案頭,其實是gif格式。
當圖片顏色少,色塊均勻時,gif格式可能比jpg更好。檔案更小,而且是無損壓縮。
uj5u.com熱心網友回復:
這個只有可能是別人和你用的jar包不一樣了,理論上來說base6演算法是一樣的轉換也是一樣的,除非在轉換前進行過壓縮,比如:先壓縮成ZIP,然后再轉base64uj5u.com熱心網友回復:
并不是你轉成gif了就表示是無損無變化的轉換,比如我把原圖下載下來,用自帶的畫圖打開后另存為gif,得到了這樣的結果

至于你說的同一個檔案不同的編碼結果,這取決于編碼用的語言和運行的系統,因為不同的語言和系統對一些字符的處理是不同于常用的語言和系統的,所以會產生差異。
最后再回答一遍你的問題,讓你的圖片變小,那你得到的base64串就會小。
(建議去了解一下base64的編碼機制,或許你就理解評論里的回答了)
uj5u.com熱心網友回復:
因為別人的圖片是gif格式的
+1
'別人'的圖片解碼后,有GIF89a的檔案頭,其實是gif格式。
當圖片顏色少,色塊均勻時,gif格式可能比jpg更好。檔案更小,而且是無損壓縮。
主要是,同一張圖片,我把他轉成gif和jpg的,放到網站上轉base64,轉出來的結果都有不一樣的,而且都比原來的大
uj5u.com熱心網友回復:
主要是,同一張圖片,我把他轉成gif和jpg的,放到網站上轉base64,轉出來的結果都有不一樣的,而且都比原來的大
可能你用的影像工具沒有別人好:)
比如微軟自帶的Paint工具,就沒有很好優化GIF調色板。
你給的影像例子實際只有16色,而Paint圖畫板存影像時用了256組顏色,使得產生的檔案偏大。
uj5u.com熱心網友回復:
因為別人的圖片是gif格式的
+1
'別人'的圖片解碼后,有GIF89a的檔案頭,其實是gif格式。
當圖片顏色少,色塊均勻時,gif格式可能比jpg更好。檔案更小,而且是無損壓縮。
主要是,同一張圖片,我把他轉成gif和jpg的,放到網站上轉base64,轉出來的結果都有不一樣的,而且都比原來的大
jpg有模糊度引數啊!這不是很簡單的東西么,人家變模糊了自然體積就小了啊
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/126015.html
標籤:C#
