Java BufferedImage / Android Bitmap

4
我正在开发一个小型库,可以在Android应用程序和Java桌面应用程序中使用。我需要使用BufferedImage从图像中获取RGB值,但是在Android中无法使用BufferedImage。反之,在Java桌面应用程序中也不能使用Bitmap。
是否有办法在Android中实现BufferedImage或在Java桌面应用程序中实现Bitmap?
谢谢。
5个回答

3
您可以定义一个包含所有所需函数的接口,而不使用任何一个库。然后,在Android版本中,使用Bitmap对象实现接口,在桌面版本中,使用BufferedImage实现接口。调用您的库的调用者传递与其使用的平台对应的接口实现,您的代码不必担心特定于平台的问题。
当然,这是否值得付出努力取决于图像对象在您的库中的使用程度。如果只有一两行代码需要读取图像,则可能不值得麻烦,其他答案中提供的反射方法可能更容易些。

0

或许你需要这个: import androidx.compose.ui.graphics.toComposeImageBitmap


目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

0

0

1
是的,但如果我使用位图,则无法在我的Java桌面应用程序中使用它,因为要使用位图,我需要使用Android库。你明白我的意思吗? - alcoceba
好的,我明白问题了。我正在寻找一个问题,但我认为你需要创建自己的BufferReader。:s - Skies
我知道,但如果有比创建自己的“图像处理类”更简单和更快的解决方案,我想知道。 - alcoceba

0

你可以编写包装代码,尝试调用特定于平台的库,并在它们不存在时捕获 NoClassDefFoundError 异常。这样,您可以动态确定要使用的适当的 API。


好的。如果我理解正确,我需要在我的自定义库中包含Andorid库(其中包括Bitmap)和Java系统库(其中包括bufferedImage),然后使用try/catch捕获异常?是这样吗? - alcoceba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接