可以使用 PIL 将多页 tiff 保存到文件中:im.save(filepath, save_all=True)。我的问题是如何将 numpy 数组列表转换为 PIL 识别的 im 对象。im = PIL.Image.fromarray()不接受列表。
这是我用来从输入元素加载文件的 JavaScript 代码。图片格式包括jpeg、png、tiff。
$(document).ready(function() {
FileDetails = function() {
var input = document.getElementById('fileUpload');
var output = document.getElementById('tblUpload');
//' + (URL || webkitURL).createObjectURL(input.files[i]) +'
output.innerHTML = '<tr>';
output.innerHTML += '<th class="thStyle" style="width: 400px;"><b>File Name</b></th><th class="thStyle" style="width: 150px;"><b>Preview Image</b></th>';
for (var i = 0; i < input.files.length; ++i) {
output.innerHTML += '<td style="padding: 10px; width: 400px;">' +
input.files[i].name + '</td>' +
'<td style="padding: 10px; width: 150px; color: #0d47a1">' +
'<a target="_blank" href="' + (URL || webkitURL).createObjectURL(input.files[i]) + '">Show</a></td>';
}
output.innerHTML += '</tr>'; …Run Code Online (Sandbox Code Playgroud) 我正在尝试读取并保存带有一些附加标签的 tiff 文件,当我制作一个运行良好的新图像时,但是当我打开一个图像然后尝试写回一些元标记时,它不起作用(图像可以写入,但它将保留原始标签而不做任何更改)。
我附上了我的测试代码,非常感谢您的帮助!
from PIL import Image, TiffImagePlugin
def test_custom_metadata():
img = Image.open('myimage.tif')
info = TiffImagePlugin.ImageFileDirectory()
CustomTagId = 37000
info[CustomTagId] = 6
info.tagtype[CustomTagId] = 3 # 'short' TYPE
Image.DEBUG=True
TiffImagePlugin.WRITE_LIBTIFF = False # Set to True to see it break.
img.save('./temp2.tiff', tiffinfo = info)
test_custom_metadata()
Run Code Online (Sandbox Code Playgroud) 我正在开展一个项目,需要使用正射马赛克地图。该地图采用 .tiff 格式。我想从该地图中提取地理信息,以便我可以将其正确覆盖在谷歌地图上。我在这个项目中使用平均堆栈。
所以我的最后一个问题是:有没有办法使用 JavaScript 从 tiff 图像中提取地理标签?
编辑:当我使用 Maptiler(https://www.maptiler.com/)时,它会自动将 .tif 文件正确放置在谷歌地图上。我想知道它如何提取信息并将其放置在地图上,以便我可以自己完成。
我正在尝试使用 PDFBox 将多页 tiff 转换为 pdf,但没有成功。我无法在公司中使用 apache 图像共享,因为它不是稳定版本。
问题:无法读取多个 tiff 并写入 pdf。
到目前为止的工作解决方案:只有第一页被写入并保存为 pdf。此外,当 tiff 是单个页面时,它也可以工作。
下面是代码:
PDDocument doc = new PDDocument();
log.info("Read Image");
log.info("Process Image parts");
//Get the number of pages
int pages = 0;
try(ImageInputStream imageInputStream = ImageIO.createImageInputStream(new File("src/main/resources/output/testpdf.tiff"))) {
if (imageInputStream != null && imageInputStream.length() != 0) {
Iterator<ImageReader> iteratorIO = ImageIO.getImageReaders(imageInputStream);
if (iteratorIO != null && iteratorIO.hasNext()) {
ImageReader reader = iteratorIO.next();
reader.setInput(imageInputStream);
pages = reader.getNumImages(true);
log.info("Number of pages in the tiff is " …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Python 中读取 tiff 文件的标签。该文件是 RGB,每个通道具有uint16值。我目前正在使用tifffile:
import tifffile
img = tifffile.imread('file.tif')
Run Code Online (Sandbox Code Playgroud)
然而,img是一个 numpy 数组,它只有像素值。例如,我如何读取图像的x_resolution?
问题
我能够使用Image()kivy 中的模块加载图片。这就是我如何安装 kivy 以便我可以查看 TIFF 文件。但现在每次加载 TIFF 图像时,我都会收到一个又一个弹出警告,从而中断程序。
TIFFReadDirectory warning:
unknown field with tag 18246 (0x4746)
TIFFReadDirectory warning:
unknown field with tag 18249 (0x4749)
TIFFReadDirectory warning:
unknown field with tag 20752 (0x5110)
TIFFReadDirectory warning:
unknown field with tag 20753 (0x5111)
TIFFReadDirectory warning:
unknown field with tag 20754 (0x5112)
TIFFReadDirectory warning:
unknown field with tag 40092 (0x9c9c)
TIFFReadDirectory warning:
unknown field with tag 40093 (0x9c9d)
TIFFReadDirectory warning:
unknown field with tag 40094 (0x9c9e)
Run Code Online (Sandbox Code Playgroud)
澄清一下,这些警告都没有出现在 python 日志中。这些都是在我的程序显示 …
使用Python,我如何计算TIFF图像的md5哈希值,排除所有元数据?
使用JPG,我做这样的事情:
def jpeg(fh):
hash = hashlib.md5()
assert fh.read(2) == "\xff\xd8"
while True:
marker,length = struct.unpack(">2H", fh.read(4))
assert marker & 0xff00 == 0xff00
if marker == 0xFFDA: # Start of stream
hash.update(fh.read())
break
else:
fh.seek(length-2, os.SEEK_CUR)
print "Hash: %r" % hash.hexdigest()
>> jpeg(file("test.jpg"))
>> Hash: 'debb4956941795d6ef48717e4c9cc433'
Run Code Online (Sandbox Code Playgroud)
不知道如何将其扩展到TIFF图像.
使用TIFF似乎更棘手,因为图像中元数据的位置可能会发生变化(它并不总是在开头或结尾).
我正在使用API,并且方法会将图像存储到内存流中,但该方法返回的值是指向内存流的Integer指针和大小值.c#是否支持使用指针进行C风格的内存操作?
如何从内存指针获取图像并将其保存到文件流或另存为文件?有人可以参考这个指针吗?
我正在尝试将JPG文件转换为TIFF使用,
System.Drawing.Image.Save(String,?ImageFormat)
但结果TIFF是文件的4倍JPEG.例如,200KB JPEG导致800KB TIFF.
如何获得TIFF文件或大小与JPEG?相同?
tiff ×10
python ×5
c# ×2
image ×2
javascript ×2
libtiff ×2
.net ×1
java ×1
jpeg ×1
kivy ×1
maptiler ×1
memorystream ×1
numpy ×1
pdf ×1
pdfbox ×1
pointers ×1
python-3.x ×1
scikit-image ×1