-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add: ImageType.JPEG #1862
base: dev
Are you sure you want to change the base?
add: ImageType.JPEG #1862
Conversation
那应该为 JPG 添加 secondaryNames 比较好 |
这里我参考的是对 APNG 的处理
|
可考虑弃用原 APNG 然后实现我上面提议的新方案 @Karlatemp 你觉得呢 |
这不可行,APNG 并不是 PNG 的 alternative name,而是另一种基于PNG的扩展标准,在协议中也使用单独的format id |
jpg 和 jpeg 似乎是纯粹的别名关系,png 和 apng 并不属于这种关系,两种情况不应按照相似方法处理 mirai/mirai-core/src/commonMain/kotlin/message/imagesImpl.kt Lines 216 to 227 in 2d26f94
|
@AdoptOSS 确实,以前写这个 enum 应该就是按这些 id 写的 |
这里有个问题 对于这种别名 在处理时是不会管你后缀是啥的 mirai内部会直接进行识别 直接按识别结果存储jpg即可 所以为什么要添加JPEG呢( |
有时候已经知道 具体的类型,希望可以手动提交 |
@@ -391,7 +392,7 @@ public enum class ImageType( | |||
@JvmStatic | |||
public fun matchOrNull(str: String): ImageType? { | |||
val input = str.uppercase() | |||
return IMAGE_TYPE_ENUM_LIST.firstOrNull { it.name == input } | |||
return IMAGE_TYPE_ENUM_LIST.firstOrNull { it.name == input || it.secondaryNames.contains(input) } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
secondaryNames里全是小写,但input被uppercase处理了,会匹配不到任何信息
另外,建议在getByExt
(大意)之类的地方改
其实吧,我觉得应该另外增加一个类似 但是问题在于,仅仅通过 |
可以说明一下这样做的具体优势吗 |
避免多余的判断(随机读取)?(实际上image还是会随机读取以获取高度和宽度) 最开始的想法是 既然 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这样的修改将会改变 matchOrNull
的行为(将在原本返回 null
的情况下不返回 null
),考虑增加一个新方法。
关于方法命名,@AdoptOSS 的提议很有参考性,不过我觉得使用 fromString
(OrNull
) 就足够且恰当了。
) { | ||
PNG("png"), | ||
BMP("bmp"), | ||
JPG("jpg"), | ||
JPG("jpg", "JPEG", "JPE"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
建议这里用小写,可以修改匹配的代码来支持
有些时候文件的后缀命名是 jpeg,还有就是 http header 中 jpg 图片 的 Content-Type 一般是 image/jpeg,
这里是希望,对于
jpeg
不用处理直接 可以作为formatName
参数