import base64
from PIL import Image
def img_to_txt(img):
msg = ""
msg = msg + "<plain_txt_msg:img>"
with open(img, "rb") as imageFile:
msg = msg + str(base64.b64encode(imageFile.read()))
msg = msg + "<!plain_txt_msg>"
return msg
class decode:
def decode_img(msg):
img = msg[msg.find(
"<plain_txt_msg:img>"):msg.find(<!plain_txt_msg>")]
#how do I convert the str 'img', encoded in base64, to a PIL Image?
while 1:
decode.decode_img(img_to_txt(input()))
Run Code Online (Sandbox Code Playgroud)
如何将字符串转换为PIL Image对象,我正在考虑使用frombytes()函数和PIL中的Image模块.
我不确定我何时或更改了什么,但突然 systemUiController 停止影响我的应用程序中的状态栏颜色。对于上下文,我将伴奏 Insets 库与系统 UI 控制器结合使用,以摆脱状态和导航栏,直到一两个版本之前,它都工作正常,现在它只适用于导航/手势栏。
我通过将所有可组合项放入 ProvideWindowInsets 并将条形颜色设置为透明来实现此目的。由于某种原因,这只适用于导航栏。
为了进行调试,我剥离了应用程序中除 mainActivity 的 onCreate 中的 setContent 之外的所有内容(包括所有服务),并暂时删除了 setContent 中除空主题提供程序之外的所有内容。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
setContent {
val systemUiController = rememberSystemUiController()
val useDarkIcons = !isSystemInDarkTheme()
SideEffect {
systemUiController.setSystemBarsColor(
color = Color.Transparent,
darkIcons = useDarkIcons
)
}
MicCheckTheme {
ProvideWindowInsets() {
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,只有导航栏是透明的。我相信这不是 Insets 库的错,因为虽然状态栏保留其颜色,但应用程序内容位于状态栏下方,因此 Insets 按预期工作。
对于进一步的上下文,我使用 MainActivity 继承 ComponentActivity 与 Material3、Compose 1.2.x 和 accompanist 0.24.9-beta,尽管我在调试时尝试了许多不同的版本,但没有一个有效。我什至创建了一个新的测试应用程序项目,并从伴奏者 github 粘贴了 Insets + SystemUIController 示例应用程序,但即使这样也不起作用。
请帮我!谢谢。
android windowinsets android-jetpack-compose jetpack-compose-accompanist android-jetpack-compose-material3
android ×1
android-jetpack-compose-material3 ×1
base64 ×1
jetpack-compose-accompanist ×1
python-3.x ×1
windowinsets ×1