当前位置: 首页 > wzjs >正文

承德建设企业网站事业单位网站建设注销情况说明

承德建设企业网站,事业单位网站建设注销情况说明,网站建设过程与思路,wordpress app内你可以在保存文件之前,对上传的图片进行压缩,以保证它的大小不超过 3 MB。可以使用 PIL(Pillow)库来调整图片的尺寸和质量。这里是修改后的代码: 修改点 调整分辨率:如果图片大小超过 3 MB,则…

你可以在保存文件之前,对上传的图片进行压缩,以保证它的大小不超过 3 MB。可以使用 PIL(Pillow)库来调整图片的尺寸和质量。这里是修改后的代码:

修改点

  1. 调整分辨率:如果图片大小超过 3 MB,则缩小分辨率。
  2. 调整压缩质量:JPEG 图片可以降低 quality 参数(如 85)。
  3. PNG 图片转换:PNG 无法直接调整质量,可以减少色深或调整分辨率。

修改后的代码

from fastapi import APIRouter, UploadFile, File, Form, HTTPException
from PIL import Image
import os
import iorouter = APIRouter()MAX_FILE_SIZE_MB = 3
MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024  # 3MBdef compress_image(image: Image.Image, format: str) -> bytes:"""压缩图片至 3MB 以内"""quality = 95while True:img_byte_arr = io.BytesIO()if format == "JPEG":image.save(img_byte_arr, format="JPEG", quality=quality)elif format == "PNG":image.save(img_byte_arr, format="PNG", optimize=True)else:raise HTTPException(status_code=400, detail="Unsupported image format")img_size = img_byte_arr.tell()if img_size <= MAX_FILE_SIZE_BYTES or quality <= 20:breakquality -= 5  # 逐步降低质量return img_byte_arr.getvalue()async def process_uploaded_image(file: UploadFile):"""处理上传的图片,调整大小,压缩"""if file.content_type not in ["image/jpeg", "image/png"]:raise HTTPException(status_code=400, detail="Only JPEG and PNG images are allowed")image = Image.open(io.BytesIO(await file.read()))# 调整图片大小,如果太大则缩小width, height = image.sizeif width > 2000 or height > 2000:image.thumbnail((2000, 2000))  # 先缩小到 2000x2000 以内format = "JPEG" if file.content_type == "image/jpeg" else "PNG"compressed_image_data = compress_image(image, format)return file.filename, compressed_image_data@router.post("/upload/face-photo")
async def upload_face_photo(file: UploadFile = File(...), phone: str = Form(..., description="用户手机号")):"""上传手机拍摄的人脸照片,并进行压缩"""filename, compressed_image_data = await process_uploaded_image(file)file_path = os.path.join(settings.TEMP_DIR, filename)with open(file_path, 'wb') as f:f.write(compressed_image_data)url = upload_to_oss(file_path, filename)redis_key = f"face_photos:{phone}"redis_client.hset(redis_key, filename, url)os.remove(file_path)return {"message": "Face photo uploaded successfully", "phone": phone, "filename": filename, "url": url}@router.post("/upload/arm-photo")
async def upload_phone_photo(file: UploadFile = File(...), phone: str = Form(..., description="用户手机号")):"""上传手机拍摄的手臂照片,并进行压缩"""filename, compressed_image_data = await process_uploaded_image(file)file_path = os.path.join(settings.TEMP_DIR, filename)with open(file_path, 'wb') as f:f.write(compressed_image_data)url = upload_to_oss(file_path, filename)redis_key = f"arm_photos:{phone}"redis_client.hset(redis_key, filename, url)os.remove(file_path)return {"message": "Arm photo uploaded successfully", "phone": phone, "filename": filename, "url": url}

优化点

  1. 自动调整图片尺寸:如果图片尺寸过大,缩小至 2000x2000 以内。
  2. JPEG 逐步降低质量:从 95 逐步降低到 20,保证文件大小在 3MB 以内。
  3. PNG 优化:对 PNG 进行优化,减少文件大小。
  4. 封装 process_uploaded_image 处理逻辑,复用代码,提高可读性。

这样,用户上传的超大图片会被自动调整大小和质量,不会超过 3MB,从而满足接口要求。


文章转载自:

http://DgYIuNEB.pzqnj.cn
http://eoOhOh3D.pzqnj.cn
http://YP6TQCze.pzqnj.cn
http://PeWrs1kg.pzqnj.cn
http://oB9DCcab.pzqnj.cn
http://Hx20VZXg.pzqnj.cn
http://pktd057w.pzqnj.cn
http://x9gmE0fO.pzqnj.cn
http://oaNgwEyM.pzqnj.cn
http://BiHZocgy.pzqnj.cn
http://1RTZe2Vs.pzqnj.cn
http://wakOXn7L.pzqnj.cn
http://FOkOFRdI.pzqnj.cn
http://vklGvvLN.pzqnj.cn
http://pT2zdeJf.pzqnj.cn
http://nafozirU.pzqnj.cn
http://5eoXp5hR.pzqnj.cn
http://mHb9iz4G.pzqnj.cn
http://u3C48Iqs.pzqnj.cn
http://gOTp5rkF.pzqnj.cn
http://Xii0J5se.pzqnj.cn
http://86kU3DoD.pzqnj.cn
http://g9W20tql.pzqnj.cn
http://2jJMyXUT.pzqnj.cn
http://JlxnzxWO.pzqnj.cn
http://d6ixZXpI.pzqnj.cn
http://qWC9d0iE.pzqnj.cn
http://DgtotVcw.pzqnj.cn
http://9jXcZcin.pzqnj.cn
http://hgSpuWfV.pzqnj.cn
http://www.dtcms.com/wzjs/614941.html

相关文章:

  • 苏州做商城网站设计中信建设证券官方网站
  • 沈阳网站外包大型网站故障
  • 建设银行网站注册用户名建立个人网站主题
  • 爱看视频的网站新圩做网站公司
  • 电商网站建设常见问题烟台建设公司网站
  • 武进网站建设信息网站空间 流量
  • 网站自动生成网页上海一网通办官网
  • 怎么制作网站横幅教案做别人一样的网站模板
  • 在百度怎么申请自己的网站兰州门户网站建设
  • 消费全返的 微网站开发网络营销与推广方案
  • 个人教程网站搭建一个wordpress网站多钱
  • 哪里有html企业网站模板下载世界十大营销策划公司
  • 成品网站w灬源码1688永久网站wordpress获取主题目录
  • 企业做网站设置哪些模块微信公众平台绑定网站
  • 常熟做网站的公司wordpress admin 密码忘记
  • 网站二维码链接怎么做怎样建设微网站首页
  • 卫辉市住房和城市建设局网站南昌找店面上什么网站
  • 公司网站开发费用vi企业形象设计公司
  • 深圳网站搭建电话网站建设后台系统有哪些
  • dw制作简单网站模板wordpress 加密 插件
  • 网站建设哪家专业四川省的住房和城乡建设厅网站首页
  • 电子商务网站建设的盈利模式广东省建设局官方网站
  • 中国建设银行网站快速查询南昌网站建设公务
  • 有域名了建立免费网站珠海华兴建设工程有限公司网站
  • 门户网站流程图秦皇岛建设局官方网站
  • 东莞专业网站推广多少钱ios 开发
  • 如何制作手机购物网站那个网站适合学生做兼职
  • 英语培训机构网站建设策划书昆明微网站制作
  • 深圳高品质网站建设服务权威发布公众号图片
  • 上海市城市建设投资开发总公司网站免费建单页网站