gpt4 book ai didi

unit-testing - 可以以编程方式生成 jpeg 图像吗?

转载 作者:行者123 更新时间:2023-12-02 15:00:45 24 4
gpt4 key购买 nike

我正在对具有此行的代码块进行单元测试

ExifSubIFDDirectory directory = ImageMetadataReader
.readMetadata(new File(uploadedFile.currentPath))
.getDirectory(ExifSubIFDDirectory.class)

ImageMetadataReader 需要一个 jpeg 文件,否则代码将失败。我尝试用这个创建一个 jpeg 文件
LocalDate localDate = LocalDate.now()
def filePath = localDate.toString() + ".jpeg"
def fileStore = new File(filePath);
fileStore.createNewFile(); // creates file with .jpeg extension

尽管使用 jpeg 扩展名制作了一个文件,但它知道它不是图像,我明白了
not a jpeg file
com.drew.imaging.jpeg.JpegProcessingException: not a jpeg file
at com.drew.imaging.jpeg.JpegSegmentReader.readSegments(JpegSegmentReader.java:212)
at com.drew.imaging.jpeg.JpegSegmentReader.<init>(JpegSegmentReader.java:107)
at com.drew.imaging.jpeg.JpegMetadataReader.readMetadata(JpegMetadataReader.java:70)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:108)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:95)
at com.witsmd.pronghorn.ConvertToDicomService.$tt__getExifTimestamp(ConvertToDicomService.groovy:164)
at com.witsmd.pronghorn.ConvertToDicomServiceSpec.(ConvertToDicomServiceSpec.groovy:156)

我可以在我的项目中放置一个实际的 jpeg 文件并将其用作示例,但我更愿意创建一个图像,保存它,测试方法,然后删除 jpeg 文件。那可能吗?

最佳答案

该程序并不关心文件扩展名。这种误解有点像 Windows 的错——文件扩展名最初只是为了让人们弄清楚文件做了什么。大多数文件格式都有所谓的标题部分,它定义了应该如何阅读文档。 HTML 和 XML 都是很好的例子。因此,您不能只传递带有 *.jpg 扩展名的任何文件并期望它能够正常工作。

如果要手动创建 JPEG 文件,则必须阅读规范并找到可以从原始数据写入它们的 grails 库。但是,我怀疑这些知识对您的测试是否至关重要,并建议保持简单。

关于unit-testing - 可以以编程方式生成 jpeg 图像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23900487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com