摘要:場景圖片上傳,是網站開發常見的需求用戶上傳圖片后端處理圖片壓縮生成縮略圖裁剪加水印等等保存在特定的文件夾中,在這個過程中,有時候上傳大圖片會出現錯誤,就是內存溢出的意思。
[場景]
? ? 圖片上傳,是網站開發常見的需求——用戶上傳圖片=>后端處理圖片(壓縮、生成縮略圖、裁剪、加水印等等...)=>保存在特定的文件夾中,在這個過程中,有時候上傳大圖片會出現錯誤“Allowed memory size of xxx bytes”,就是內存溢出的意思。
[原因]
? ? google了一下,主要的答案都是——可用內存太少了,通過修改php.ini的相關參數來減少內存的限制。https://stackoverflow.com/all...,雖然這是一種解決方案,但是默認的設置少說都有64M,再大的圖片也不會這么大吧。所以,找到了另外的一個觀點(傳送門)
????——php處理圖片時(如使用php的gd庫的函數,例如imagecreatetruecolor(),),占用內存的大小不是取決于圖片的體積大小,而是分辨率。具體公式是:(圖片分辨率,圖片對象的width和height )X(圖片的通道數,一般是3)X 1.7。e.g. 一張照片大小只有3.1M,但是分辨率高達3994X2443,占用內存是 399424433*1.7 = 49762444.2!
[總結]
? ? 這篇文章主要是對內存溢出的錯誤進行探討,大家平時進行調用第三方類庫圖片處理時,指定分辨率可避免不必要的錯誤,如果大家都什么另外的見解或者補充歡迎在下面留言討論~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28834.html
摘要:本教學使用環境介紹伺服器端資料庫語言版本本機端在剛剛遇到了這個問題上傳普通解析的圖片,例如都是可以正常上傳也能夠使用庫對其解壓縮只是當我上傳了甚至更高的圖片時,一樣可以普通上傳但是卻無法上傳查看錯誤表示類似這樣的錯誤訊息只要在后端表頭宣告就 本教學使用環境介紹伺服器端:Ubuntu 16.04資料庫:Mariadb 10.1.34(Mysql)語言版本:php 7.0本機端:MacOS...
摘要:中圖片的處理都是使用了庫,這個庫提供了很多方法讓可以更方便地對圖片進行操作,支持的圖片格式如下回到一開始的問題,那個小伙伴需要處理高分辨的圖片,圖片大小必然很大,所以就會出現內存不夠的情況,解決方法還是有很多的。 今天小伙伴在群里問了這么一個問題: showImg(https://segmentfault.com/img/remote/1460000018494753); showIm...
摘要:的今天我們就進一步的來的查詢緩存的高級作用吧,也就是查詢緩存和查詢非緩存起因內存溢出警告官方主要說緩存查詢是一下子把內容都查出來,放到內存里,會越積越多而非緩存查詢則直接一條一條從服務器返回,也就是會等待著進程來獲取下一條數據。 MySQL的Buffered and Unbuffered queries 今天我們就進一步的來talk talk MySQL的查詢緩存的高級作用吧,也就是 ...
摘要:加載圖的機制是什么,為何不會內存泄漏自定義可拖動的顯示高清大圖的技術博客大總結提供一個設置圖片的入口,里面去獲得圖片的真實的寬度和高度,以及初始化我們的重寫,在里面根據用戶移動的手勢,去更新顯示區域的參數。 目錄介紹 7.0.0.1 加載bitmap圖片的時候需要注意什么?為何bitmap容易造成OOM?如何計算Bitmap占用內存? 7.0.0.2 如何理解recycle釋放內存問...
閱讀 638·2021-11-25 09:43
閱讀 1906·2021-11-17 09:33
閱讀 824·2021-09-07 09:58
閱讀 2062·2021-08-16 10:52
閱讀 482·2019-08-30 15:52
閱讀 1722·2019-08-30 15:43
閱讀 974·2019-08-30 15:43
閱讀 2924·2019-08-29 16:41