Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ylwdev
对上传的图片进行居中剪裁_536783
提交
8e4f724a
对
对上传的图片进行居中剪裁_536783
项目概览
ylwdev
/
对上传的图片进行居中剪裁_536783
与 Fork 源项目一致
Fork自
inscode / Streamlit
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
对
对上传的图片进行居中剪裁_536783
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8e4f724a
编写于
2月 19, 2024
作者:
Y
ylwdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Mon Feb 19 17:06:00 CST 2024 inscode
上级
0520122c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
53 addition
and
21 deletion
+53
-21
main.py
main.py
+53
-21
未找到文件。
main.py
浏览文件 @
8e4f724a
import
streamlit
as
st
from
streamlit_option_menu
import
option_menu
# 设置Streamlit应用程序的标题
st
.
set_page_config
(
page_title
=
"app name"
,
layout
=
"wide"
)
menu1
=
"菜单1"
menu2
=
"菜单2"
with
st
.
sidebar
:
menu
=
option_menu
(
"菜单"
,
[
menu1
,
menu2
],
icons
=
[
'house'
,
"list-task"
],
menu_icon
=
"cast"
,
default_index
=
0
)
from
PIL
import
Image
import
os
def
main
():
if
menu
==
menu1
:
st
.
subheader
(
f
"
{
menu1
}
"
)
if
menu
==
menu2
:
st
.
subheader
(
f
"
{
menu2
}
"
)
if
__name__
==
'__main__'
:
main
()
st
.
title
(
"图片居中剪裁"
)
# 图片上传功能
uploaded_file
=
st
.
file_uploader
(
"上传一张图片"
,
type
=
[
"jpg"
,
"jpeg"
,
"png"
])
if
uploaded_file
is
not
None
:
# 打印上传的图片信息,方便调试
st
.
write
(
"原始图片信息:"
,
uploaded_file
)
# 读取上传的图片
image
=
Image
.
open
(
uploaded_file
)
# 显示原始图片
st
.
image
(
image
,
caption
=
"原始图片"
,
use_column_width
=
True
)
# 图片居中剪裁功能
# 获取图片尺寸
width
,
height
=
image
.
size
# 按宽高比例计算剪裁后的尺寸
if
width
>
height
:
new_width
=
int
(
height
*
(
16
/
9
))
new_height
=
height
else
:
new_width
=
width
new_height
=
int
(
width
*
(
9
/
16
))
# 计算剪裁起始点坐标
left
=
int
((
width
-
new_width
)
/
2
)
top
=
int
((
height
-
new_height
)
/
2
)
right
=
int
((
width
+
new_width
)
/
2
)
bottom
=
int
((
height
+
new_height
)
/
2
)
# 进行剪裁
image_cropped
=
image
.
crop
((
left
,
top
,
right
,
bottom
))
# 显示剪裁后的图片
st
.
image
(
image_cropped
,
caption
=
"剪裁后的图片"
,
use_column_width
=
True
)
# 图片剪裁后保存功能
# 获取保存路径
save_path
=
st
.
text_input
(
"请输入要保存的文件夹路径"
)
# 如果路径存在且不为空
if
save_path
and
os
.
path
.
exists
(
save_path
):
# 获取保存文件名
filename
=
st
.
text_input
(
"请输入要保存的文件名"
)
# 如果文件名不为空
if
filename
:
# 拼接文件保存路径
save_file_path
=
os
.
path
.
join
(
save_path
,
filename
)
# 保存剪裁后的图片
image_cropped
.
save
(
save_file_path
)
st
.
write
(
"图片已保存至:"
,
save_file_path
)
if
__name__
==
"__main__"
:
main
()
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录