印刷問(wèn)答為您提供印前,印中,印后以及設計的相關(guān)問(wèn)題咨詢(xún)與解答,印刷案例規格及印刷報價(jià),讓您實(shí)時(shí)了解在印刷中的各類(lèi)相關(guān)問(wèn)題及印后相關(guān)問(wèn)題,并提供印刷時(shí)的注意事項,為您提供各類(lèi)印前印后的相關(guān)問(wèn)題解決方案
印刷問(wèn)答 2022-09-21 14:14 98
由于現在手機像素普遍較高,隨手拍一張圖片都6、*M,十幾兆的圖片也并不罕見(jiàn)。如果這些未處理的圖片直接隨數據上傳向服務(wù)器,不但會(huì )占用更多的存儲空間,而且用戶(hù)也要等更久的時(shí)間,體驗性會(huì )差很多,同時(shí)更長(cháng)的傳輸時(shí)間,也加大了問(wèn)題發(fā)生的概率,直接決定了系統的生命力,可謂是生死攸關(guān),基于這些情況,壓縮圖片并上傳的需求應運而生。
開(kāi)源字節使用Thumbnails去掉圖片冗余信息,有效壓縮圖像,同時(shí)又不會(huì )損害圖像效果。同時(shí)直接返回圖片路徑,方便前臺調用。代碼如下:
* 通用上傳請求
@PostMapping("/common/upload")
public AjaxResult uploadFile(MultipartFile file) throws Exception
try
// 真實(shí)文件名
String realName = file.getOriginalFilename();
// 上傳文件路徑
String filePath = RuoYiConfig.getUploadPath();
// 上傳并返回新文件名稱(chēng)
String fileName = FileUploadUtils.upload(filePath, file);
String url = domain + fileName;
AjaxResult ajax = AjaxResult.success();
ajax.put("fileName", fileName);
ajax.put("realName", realName);
ajax.put("url", url);
return ajax;
catch (Exception e)
return AjaxResult.error(e.getMessage());
* 文件上傳
* @param baseDir 相對應用的基目錄
* @param file 上傳的文件
* @param allowedExtension 上傳文件類(lèi)型
* @return 返回上傳成功的文件名
* @throws FileSizeLimitExceededException 如果超出最大大小
* @throws FileNameLengthLimitExceededException 文件名太長(cháng)
* @throws IOException 比如讀寫(xiě)文件出錯時(shí)
* @throws InvalidExtensionException 文件校驗異常
public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension)
throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException,
InvalidExtensionException
int fileNamelength = file.getOriginalFilename().length();
if (fileNamelength FileUploadUtils.DEFAULT_FILE_NAME_LENGTH)
throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
assertAllowed(file, allowedExtension);
String fileName = extractFilename(file);
File desc = getAbsoluteFile(baseDir, fileName);
// 如果是圖片,則壓縮
if (ImageCheck(file))
// 圖片大??;其中file.length()獲取的是字節,除以1024可以得到以kb為單位的文件大小
long size = file.getSize() / DEFAULT_SIZE;
// 圖片對象
BufferedImage bufferedImage = ImageIO.read(file.getInputStream());
// 圖片寬度
int width = bufferedImage.getWidth();
// 使用Thumbnailator實(shí)現圖片壓縮,通過(guò)大小與尺寸的判斷,保證圖片最優(yōu)
float scale = 1f;
float quality = 1f;
// 如果像素寬度大于*000,則縮放到原圖一半大小,否則不改變尺寸
if(width *000){
scale = 0.*f;
// 如果像素寬度大于1*00,則縮放到原圖80%大小,否則不改變尺寸
if(width 1*00){
scale = 0.8f;
// 如果圖片大于*000kb,則壓縮到原圖的*0%質(zhì)量
if(size *000){
quality = 0.*f;
// 如果圖片大于1000kb,則壓縮到原圖的80%質(zhì)量
if(size 1000){
quality = 0.8f;
// 去掉圖片冗余信息后可以有效壓縮圖像,同時(shí)又不會(huì )損害圖像的有效信息。
Thumbnails.of(file.getInputStream())
.scale(scale) // 值在0到1之間,1f就是原圖大小,0.*就是原圖的一半大小
.outputQuality(quality) // 值也是在0到1,越接近于1質(zhì)量越好,越接近于0質(zhì)量越差
.toFile(desc);
}else{
file.transferTo(desc);
String pathFileName = getPathFileName(baseDir, fileName);
return pathFileName;
021yin.com/article/21*.html
公司長(cháng)期不經(jīng)營(yíng)不去注銷(xiāo)的話(huà)稅務(wù)方面:企業(yè)不申報的情況:連續*個(gè)月未申報,專(zhuān)管員會(huì )把企業(yè)列如(非正常戶(hù))企業(yè)非正常戶(hù)如果需要解除,需要罰款1000起,并補齊往年本應納稅申報才可以恢復。工商方面企業(yè)未做年報的情況:不做年報,工商列入經(jīng)營(yíng)異常名...
2023-04-12 76
適用行業(yè):數碼產(chǎn)品行業(yè)(手機殼彩印、塑料制品外殼、家電面板); 裝潢裝飾行業(yè)(玻璃移門(mén)、瓷磚衛浴、家裝櫥柜、瓷磚背景畫(huà)); 禮品加工行業(yè)(畫(huà)室影樓、山水畫(huà),石材金石畫(huà)、木材禮品盒); 廣告加工行業(yè)(亞克力、有機玻璃、廣告牌標牌、戶(hù)...
2023-04-07 66
有機玻璃字制作廠(chǎng)家,上海有機玻璃字制作公司為您提供有機玻璃字制作咨詢(xún),有機玻璃字制作案例,有機玻璃字制作規格及有機玻璃字制作報價(jià),讓您實(shí)時(shí)了解有機玻璃字制作廠(chǎng)家的最新規格及報價(jià),并提供有機玻璃字制作時(shí)的注意事項,定制出讓您滿(mǎn)意的有機玻璃字制作產(chǎn)品。
2023-03-21 77
021yin.com產(chǎn)品推薦及限制用途:主要用于非吸收性基材印刷。不作印刷以外的其他用途。九大領(lǐng)域整體應用解決方案GS-01復合里印專(zhuān)用水性油墨產(chǎn)品簡(jiǎn)介:該產(chǎn)品是采用納米級有(無(wú))機顏料、進(jìn)口特種復合乳液和相關(guān)助劑,經(jīng)過(guò)一定的反應而制...
2023-03-18 97
當我們看到UV打印機時(shí),總會(huì )不由自主的想到:為什么它打印效果色彩真、速度快、操作簡(jiǎn)單,同時(shí)又幾乎不受材料的限制呢?到底是什么賦予了uv打印機這個(gè)能力?UV打印機組成的關(guān)鍵部分有哪幾塊?總體上看UV打印機的結構主要是分為三個(gè)部分:內部結構、...
2023-03-08 76
掃一掃微信報價(jià)