当前位置: 首页 > 知识库问答 >
问题:

在谷歌应用程序引擎上解码以电子邮件形式接收的base64图像

魏毅
2023-03-14

我想解码谷歌应用引擎(GAE)上通过电子邮件接收的base64编码图像。当我从MimeMessage中提取图像时,我得到一个base64DecoderStream对象。我最初假设这个解码数据是ARGB格式的字节数组,但这里的情况似乎不是这样。我通过比较解码后的字节数组和运行“ImageIO.read(ImageFile.getRGB()”得到的字节数组来验证这一点,但它们不匹配。

所以我想知道:-

1) 使用base64解码图像后,我获得了哪些图像格式数据?

2)如何在GAE上获取实际图像PNG或JPG?

3) 最后,有没有办法在GAE上以ARGB格式获取收到的电子邮件图像?

任何帮助都非常感谢...谢谢

共有1个答案

林炫明
2023-03-14

Base64编码数据是图像文件本身,而不是解压的像素数据。它是附加到消息的实际文件。因此,在解码Base64数据后,在这个特定情况下,您有一个二进制PNG文件。

要将其作为图像进行操作,有几个选项:

  1. 将解码后的字节[]直接传递给ImagesServiceFactory。makeImage()
  2. 将解码的字节[]写入文件并调用ImagesServiceFactory。makeImageFromFilename()
  3. 将解码的字节[]作为Blob存储到数据库中,然后调用ImagesServiceFactory。makeImageFromBlob()

一旦你做到了这一点,不幸的是,似乎没有一种简单的方法可以使用谷歌的内置API获取ARGB数据。这里讨论的解决方案可能会有所帮助:在谷歌appengine中提取图像像素值。

 类似资料:
  • 我是谷歌应用引擎的新手。要使用Java App Engine,Google提供了两个选项:创建一个Maven项目,或者由Eclipse Google插件支持的非Maven项目。根据文档,Eclipse版本更容易。那么我应该继续日食吗?但是我看到了很多关于maven的帖子。有人能评论一下使用Maven的利弊吗。 谢谢

  • 我使用电子邮件API与流星1.5。下面是我发送超文本标记语言模板作为电子邮件的创建代码。 流星法: 问题是邮件是在用户端接收的,但在邮件中显示以下格式。为什么它显示消息剪辑?

  • 我是谷歌脚本的新手,不知道是否有人能帮我。 我有一个共享的谷歌电子表格,基本上是用新的员工信息更新行。 我希望只有当插入这些新员工行时,特定列(比如F列)上的“ABC”字符串匹配时,才会触发电子邮件。基本上,电子邮件触发器会让我们的团队知道如何设置新的员工帐户。 有人能帮我吗?我不知道如何进行字符串匹配,也不知道如何让它专门发送给固定的电子邮件收件人。我已经安装了Python、gspread和gd

  • 我是GCS的新手。 这里我写了几行。 现在棘手的部分是按原样下载此数据<代码>Ex.new\u文件。csv 有人解决过吗?如果那样的话,我会很感激的。 谢谢

  • 我目前正在编写一个应用程序,它应该扫描用户的邮件中的特定附件,并从电子邮件中提取它们。 我使用Javamail连接邮箱,检索邮件并解析邮件内容。当我检索带有一个附件的邮件时,Javamail会给我一个包含3个正文部分的多部分对象:纯文本邮件、html邮件和附件。 然而,如果我在Google App Engine环境中运行相同的代码来检索相同的电子邮件,我只会得到两个正文部分:纯文本电子邮件和htm