我目前正在开展一个项目,该项目要求我将TIFF图像拆分为包含所有标签的文件和包含所有图像数据的文件,并从这些文件重建TIFF图像.唯一的问题是,似乎LibTIFF没有提供从图像中获取所有标签的简单方法.我尝试使用TIFFGetTagListCount然后使用TIFFGetField来检索标记,但这只返回了一小部分标记.我已经开始滚动我自己的版本了,但我只想仔细检查并确保我不会忽略某些内容,因为这似乎是一个非常明显的功能,应该包含在库中.
Vb.Net应用程序从头开始创建一个位图,并转换为tiff或将其发送到打印机.在这两种情况下,图像的质量(在这种情况下是字体)都不是很好.下面列出的示例代码创建了我用来写入图像的图形对象.
Dim gr2 As Graphics = Graphics.FromImage(New Bitmap(800, 1000), Imaging.PixelFormat.Format32bppPArgb))
Run Code Online (Sandbox Code Playgroud) 我有5个单页tiff图像.我想将所有这5个tiff图像合并到一个多页tiff图像中.我正在使用Java Advanced Imaging API.我已经阅读了SUN提供的JAI API文档和教程.我是JAI的新手.我知道基本的核心java.我不理解SUN的那些文档和文化.所以朋友请告诉我如何将5个tiff图像文件合并到一个多页tiff图像中.请给我一些关于上述主题的指导.我一直在搜索互联网上面的主题,但没有得到任何一个线索.所以请指导我的朋友们.
提前致谢.
我需要将多页TIFF转换为多页PDF.我可以访问ImageMagick和GhostScript(在*nix环境中).我该怎么做呢?谢谢.
更新:
事实证明我的测试文件是错误的(它没有多个页面),这让我觉得我的命令错了.这似乎对我有用:convert input.tif output.pdf
我正在编写一个小应用程序来将多个多页PDF转换为多页TIFF文件.根据这个网站上的其他问题和答案,我已经尝试了ghostscript和ImageMagick,但是当我运行它们时,这两个软件只会隐藏第一页.有没有其他工具可以用来实现这一点,最好是开源的?
例如,我生成了一些高分辨率的出版质量图
library(plot3D)
Volcano<-volcano
zf=10 #zoom factor
tiff("Volcano.tif", width=1800*zf, height=900*zf, res=175*zf, compression="lzw")
image2D(z = Volcano, clab = "height, m",colkey = list(dist = -0.20, shift = 0.15,side = 3, length = 0.5, width = 0.5,cex.clab = 1.2, col.clab = "white", line.clab = 2,col.axis = "white", col.ticks = "white", cex.axis = 0.8))
dev.off()
Run Code Online (Sandbox Code Playgroud)
该文件是22 MB.
现在我用GIMP打开文件而不做任何其他事情我将它导出为"Volcano gimp.tif"(不要改变分辨率,或做任何其他事情).GIMP生成一个1.9 MB的文件("Volcano gimp.tif").
imagemagick 报告相似图片统计:
$ identify Volcano.tif
Volcano.tif TIFF 18000x9000 18000x9000+0+0 8-bit DirectClass 22.37MB 0.000u 0:00.000
$ identify "Volcano gimp.tif"
Volcano gimp.tif TIFF 18000x9000 …Run Code Online (Sandbox Code Playgroud) 我正在最新版本的R studio中使用ggplot2制作出版品质图.
它们需要以300 dpi保存为TIFF.
当我运行代码并在命令控制台中调用绘图时,它在绘图窗口中完美显示.但是,当我将它保存为带有宽度,高度和分辨率命令的tiff时,当我在图像查看器中打开tiff时,它看起来完全搞砸了.字体很大,传说很大,错位等.
我试图从R studio绘图窗口导出图像,但我只有高度和宽度选项.因为我想要300 dpi的数字是3.5 x 2.33我理解宽度:高度将是1050:699(像素).但是,也许我误解了这个条目.
也许,我应该以英寸为单位输入高度和宽度.如果我这样做,那我怎么指定dpi?
我使用tiff命令保存了我的情节.这是从Cookbook forR借来的可重复的例子
set.seed(955)
dat <- data.frame(cond = rep(c("A", "B"), each=10),
xvar = 1:20 + rnorm(20,sd=3),
yvar = 1:20 + rnorm(20,sd=3))
library(ggplot2)
test <- ggplot(dat, aes(x=xvar, y=yvar, color=cond)) +
geom_point(shape=1) +
scale_colour_hue(l=50) + # Use a slightly darker palette than normal
geom_smooth(method=lm, # Add linear regression lines
se=FALSE) +
theme(legend.position=c(.75,.38),
axis.title.y = element_text(colour="black", size = 18),
axis.title.x = element_text( colour="black", size = 18),
axis.text.x=element_text(colour="black", size= 16),
axis.text.y=element_text( colour="black", size = …Run Code Online (Sandbox Code Playgroud) 我知道PIL Image.seek()和Image.tell()PIL的方法允许我去一个特定的帧,并分别列出当前帧.我想知道总共有多少帧.是否有获取此信息的功能?或者,在python中是否有一种方法可以创建循环并捕获在没有图像时发生的错误?
from PIL import Image
videopath = '/Volumes/USB20FD/test.tif'
print "Using PIL to open TIFF"
img = Image.open(videopath)
img.seek(0) # .seek() method allows browsing multi-page TIFFs, starting with 0
im_sz = [img.tag[0x101][0], img.tag[0x100][0]]
print "im_sz: ", im_sz
print "current frame: ", img.tell()
print img.size()
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我打开一个TIFF堆栈,并访问第一帧.我需要知道堆栈的"深度",因此如果不存在图像,我不会在下游计算中出现错误.
我使用以下代码从文件夹中读取一组tiff文件
from PIL import image
from skimage import io
io.use_plugin('pil')
images = os.listdir(train_data_path)
for image_name in images:
img = io.imread(os.path.join(train_data_path, image_name))
Run Code Online (Sandbox Code Playgroud)
运行上面的代码时,大多数文件都可以顺利读取.但我发现该程序会为某些特定文件生成一些警告消息
/devl/lib/python3.4/site-packages/scikit_image-0.12.3-py3.4-linux-x86_64.egg/skimage/external/tifffile/tifffile.py:1794: RuntimeWarning: py_decodelzw encountered unexpected end of stream
strip = decompress(strip)
Run Code Online (Sandbox Code Playgroud)
打开该文件时,我看不出与其他人有任何明显的区别.这可能是什么原因造成的?
我有一个尺寸为 21 X 513 X 513 的 tiff 图像,其中 (513, 513) 是包含 21 个通道的图像的高度和宽度。如何将此图像的大小调整为 21 X 500 X 375?
我正在尝试使用 PILLOW 来做到这一点。但无法弄清楚我是否做错了什么。
>>> from PIL import Image
>>> from tifffile import imread
>>> img = Image.open('new.tif')
>>> img
<PIL.TiffImagePlugin.TiffImageFile image mode=F size=513x513 at 0x7FB0C8E5B940>
>>> resized_img = img.resize((500, 375), Image.ANTIALIAS)
>>> resized_img
<PIL.Image.Image image mode=F size=500x375 at 0x7FB0C8E5B908>
>>> resized_img.save('temp.tif')
>>> img = imread('temp.tif')
>>> img.shape
(500, 375)
Run Code Online (Sandbox Code Playgroud)
通道信息在这里丢失。