我知道有一个对jpeg带有tiff的线程,我使用它来进行格式化。我安装了jpeg和tiff软件包。
library("jpeg")
library("tiff")
jpeg<- readJPEG("ortho.jpg", native = TRUE)
tiff<- writeTIFF(jpeg,"tiff", bits.per.sample = 16L, compression = "JPEG",
reduce = TRUE)
这行得通,并且让我感到困惑,但没有属性,因此没有地理参考。我当前的尝试/思考过程是将jpeg编写为栅格,而不是从栅格转换为tiff。因此,我正在使用栅格数据包和writeRaster
函数。目前,我的代码是:
library("jpeg")
library("tiff")
jpeg<- readJPEG("ortho.jpg", native = FALSE)
raster<- as.raster(jpeg)
rf<- writeRaster(raster, filename = "rasterfile.tif" , format="GTiff")
这成功地写入了带有属性的栅格,但是在读取的writeRaster
部分中出现错误
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘writeRaster’ for signature ‘"raster", "character"’
任何建议将不胜感激。
答案 0 :(得分:0)
您需要加载raster
软件包,并且应该不使用as.raster
。
要修正您的示例(并使用一些示例数据!)
library(jpeg)
f <- system.file("img", "Rlogo.jpg", package="jpeg")
img <- readJPEG(f)
library(raster)
b <- brick(img)
plotRGB(b, scale=1)
writeRaster(b, "test.tif", overwrite=TRUE)
但是,通过这种方式,您将失去地理配准。为避免这种情况,您根本不应该使用jpeg
软件包,而应该这样做:
library(raster)
bb <- brick(f)
writeRaster(bb, "test2.tif", overwrite=TRUE)
可视化
plotRGB(bb)
有关可以帮助您减小文件大小的选项,请参见?writeRaster
和https://www.gdal.org/frmt_gtiff.html。
答案 1 :(得分:0)
这是我最后的有效代码。
library(jpeg)
library(tiff)
f <- system.file("ortho.img", package="jpeg")
img <- readJPEG("ortho.jpg", native = FALSE)
writeTIFF(img, "test.tif", bits.per.sample = 8L, compression = "JPEG", reduce = TRUE)
然后,我将引用jpeg的.jgw切换为.tfw,然后用autocad将其立即加载。确保tfw和tif的文件名相同。