【问题标题】:How to convert png image to jpg format in Flutter?如何在 Flutter 中将 png 图像转换为 jpg 格式?
【发布时间】:2021-09-06 17:33:40
【问题描述】:

我正在寻找可以将 png 图像转换为 jpg 格式的方法,因为我无法在任何地方找到这样做的方法。

这是我尝试过的代码,但它给了我黑色图像:

// Read a jpeg image from file.
 img.Image image = img.decodeImage(File(pngfilepath).readAsBytesSync());

// Resize the image to a 200 height thumbnail (maintaining the aspect ratio).
 img.Image thumbnail = img.copyResize(image, height: 200);

// Save the thumbnail as a JPG.
 File(outputfilepath/filename.jpg)
   ..writeAsBytesSync(img.encodeJpg(thumbnail));

所以,请提供一种将 png 转换为 jpg 的方法。谢谢。

【问题讨论】:

  • @gtxtreme 我已经看过了,但这对我没有帮助,因为它是 jpg 到 png 而不是 png 到 jpg。
  • 它可以简单地相互转换
  • @gtxtreme 不,不可能。如果你能做到,那么请提供一个工作示例作为答案。

标签: android flutter dart


【解决方案1】:

你可以试试image package。在示例部分您可以看到如何将.webp 图像更改为PNG 格式。

import 'dart:io';
import 'package:image/image.dart';

void main() {
  // Read an image from file (webp in this case).
  // decodeImage will identify the format of the image and use the appropriate
  // decoder.
  final image = decodeImage(File('test.webp').readAsBytesSync())!;

  // Resize the image to a 120x? thumbnail (maintaining the aspect ratio).
  final thumbnail = copyResize(image, width: 120);

  // Save the thumbnail as a PNG.
  File('thumbnail.png').writeAsBytesSync(encodePng(thumbnail));
}

PNG 转 JPEG:

import 'dart:io';
import 'package:image/image.dart';

void main() {
  final image = decodeImage(File('test.png').readAsBytesSync())!;

  File('thumbnail.jpg').writeAsBytesSync(encodeJpg(image));
}

【讨论】:

  • 谢谢,但我正在寻找 png 到 jpg 而不是 webp 到 png。
  • 这只是一个例子,您可以根据需要更改格式,按照更新的答案。
  • 我明白你的意思,但正如我已经在上面的帖子中描述了我的问题,我试图修改此代码但它不起作用,因为它会导致黑色图像。
  • 好的,是png和jpg的区别,你的图片是什么?
  • 我使用的图片是upload.wikimedia.org/wikipedia/commons/thumb/d/d0/…。我确实尝试使用 encodePng 和 encodeJpg 对其进行编码,例如输出路径为 (filepath/filename.jpg) 但生成的图像始终无效。
猜你喜欢
  • 1970-01-01
  • 2018-12-05
  • 2011-05-16
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2023-03-10
  • 2012-06-01
  • 1970-01-01
相关资源
最近更新 更多