工作中需求方提出将遥感瓦片图像拼接后转存为tiff图像。即,如何将jpg转为geotiff?作为小白的我开始了研究,以下文章中如有不对的地方,欢迎评论区进行批评指正。
GDAL 中有两种方法创建文件,分别是CreateCopy() 和 Create()。从字面意思上理解,一个是从现有的数据源进行拷贝复制,另一个则是显式地写入元数据和栅格数据。需要注意的是,所有创建文件的的驱动程序都支持CreateCopy(),而只有少数驱动程序支持Create()。
该方法从现有源数据中拷贝信息。可以传递特定格式的创建选项,可以报告复制进度。
Python代码:
src_ds = gdal.Open(src_filename)
dst_ds = driver.CreateCopy(dst_filename, src_ds, strict=0)
# Once we're done, close properly the dataset
dst_ds = None
src_ds = None
CreateCopy()方法返回一个可写的数据集,必须正确关闭它才能完成数据集的写入并将其刷新到磁盘。strict参数 表示是否严格执行拷贝,为0的时候表示不会出现致命错误。
更复杂的情况可能涉及传递创建选项和使用预定义的进度监视器
src_ds = gdal.Open(src_filename)
dst_ds = driver.CreateCopy(dst_filename, src_ds, strict=0,
options=["TILED=YES", "COMPRESS=PACKBITS"])
# Once we're done, close properly the dataset
dst_ds = None
src_ds = None
对于不只是从现有文件复制到新文件的情况,Create()方法采用与CreateCopy()类似的选项列表,但必须显式提供图像大小、带区数和带区类型。
dst_ds = driver.Create(dst_filename, xsize=512, ysize=512,
bands=1, eType=gdal.GDT_Byte)
这里的参数bands含义栅格图像Bands理解
成功创建数据集后,必须将所有适当的元数据和栅格数据写入文件,根据使用情况不同选择不同数据,以下是简单的一个例子。
from osgeo import osr
import numpy
dst_ds.SetGeoTransform([444720, 30, 0, 3751320, 0, -30])
srs = osr.SpatialReference()
srs.SetUTM(11, 1)
srs.SetWellKnownGeogCS("NAD27")
dst_ds.SetProjection(srs.ExportToWkt())
raster = numpy.zeros((512, 512), dtype=numpy.uint8)
dst_ds.GetRasterBand(1).WriteArray(raster)
# Once we're done, close properly the dataset
dst_ds = None
我正在尝试找出一种方法来显示来自不在RAILS_ROOT下(在RedHat或Ubuntu环境中)的已安装文件系统的图像。我不想使用符号链接(symboliclink),因为这个应用程序实际上是通过Tomcat部署的,而当我关闭Tomcat时,Tomcat会尝试跟随符号链接(symboliclink)并删除挂载中的所有图像。由于这些文件的数量和大小,将图像放在public/images下也不是一种选择。我查看了send_file,但它只会显示一张图片。我需要在一个格式良好的页面中显示6个请求的图像。由于膨胀,我宁愿不使用Base64编码,但我不知道如何将图像数据与呈现的页面一起传递下去。
我想遍历目录中的每个jpg/jpeg文件以及每个子目录和该子目录的每个子目录等等。我希望能够浏览文件夹中的每个图像文件。有没有一种简单的方法可以做到这一点,或者递归方法是否效果最好? 最佳答案 Dir.glob("your_directory/**/*.{jpg,jpeg}") 关于ruby-遍历目录和子目录中的每个.jpg或.jpeg文件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi
我正在尝试在我在EclipseIndigoIDE中创建的动态Web项目中使用以下index.jsp文件中的图像。我已经在我的项目文件夹的WebContent下的WEB-INF/images/pict1.jpg下添加了图像。但是当我在浏览器中运行时,图像不可见。文本和提交按钮按预期出现。我错过了什么吗?关于如何显示图像的任何想法?任何帮助将不胜感激。下面是代码。谢谢,桑纳特MyPageContinueContinue 最佳答案 图像“src”属性与您的网络应用程序的上下文根相关。图像不进入WEB-INF。将“图像”文件夹移动到项目的“
我有一个在map应用程序中使用SVG/VML(通过RaphaelJS)设置的网站,其中SVG用于在背景map图像上显示图形。这在屏幕上非常有效,也适用于打印带有叠加层的硬拷贝map。然而,当用户想要将带有SVG叠加层的map图像保存到本地.JPG文件时,此设置就会崩溃。更具体地说,当图像顶部有SVG/VML元素时,使用大多数浏览器的标准右键单击功能“将图像另存为...”不起作用。右键单击map,用户可以保存map图像,但没有叠加层。右键单击覆盖的SVG元素,用户获得的最好结果是能够检查元素或保存一些HTML(因浏览器而异)。所以我的主要问题是;是否可以拍摄一张图像和一个SVG元素并将它
当我通过Firebase对用户进行身份验证时(如下),生成的user包含一个颜色反转的photoURL。单击此jpgurl以查看颜色反转:https://lh3.googleusercontent.com/-JVpfmGGJuO8/AAAAAAAAAAI/AAAAAAAAAME/sMJVq9F8gec/photo.jpg然而,当我将该URL粘贴到StackOverflow的“图像”编辑器按钮时,它在下方显示了未反转的图像:signIn(){varprovider=newfirebase.auth.GoogleAuthProvider();provider.addScope('https
我开发了web应用程序,我正在使用文件阅读器来选择图像,因为我必须将图像.png格式转换为.jpeg格式。请帮助我完成任务。提前致谢。 最佳答案 这绝对可以通过HTML5canvas元素实现。只需在Canvas中绘制图像即可。(如果需要,可以隐藏Canvas元素)。然后使用canvas.toDataURL("image/jpeg");获取所需格式的图像的Base64符号。查看:http://davidwalsh.name/convert-canvas-image 关于javascript
在driveFiles中我得到了多个文件名。对于每个附件,我需要附上pdf或word或jpg图标所以我使用substr和lastIndexOf得到了文件格式。现在使用if条件我可以禁用一个文件的图标。如果我测试多个文件,它不会检查第二个if。我认为问题是由于第一个if中的return语句引起的。你能告诉我如何修复多个文件吗?{this.props.driveFiles.length>0?this.props.driveFiles.map(_driveFileKey=>{vardriveFormat=_driveFileKey.name.substr(_driveFileKey.name
我正在从API获取像varbyteArr=[12,-123,43,99,...]这样的字节数组,然后我通过将它转换成UTF-8字符串varutf8_str=String.fromCharCode.apply([],newUint8Array(byteArr));然后将UTF-8字符串转成Base64字符串varbase64_str=window.btoa(utf8_str);现在我正在通过Phonegap中的FileWriter将UTF-8或Base64字符串写入文件(xyz.pdf/xyz.jpg),但打开它时显示空白文件。functiongotWriteFile(dirEntry)
将JPG图像转换为PNG我必须使用javascript将jpg图像转换为png图像并调整图像大小以创建图像缩略图。 最佳答案 如果我们看一下source来自JPGtoPNG使用纯javascript将图像从JPG转换为PNG的网站。我们看到他们:从文件中加载jpg图片创建一个与jpg大小相同的Canvas绘制覆盖整个Canvas的jpg图像将Canvas转换为blob(如果图像足够小,您还可以使用.toDataURL())下载blob 关于javascript-如何使用javascrip
对于我正在处理的项目,我需要从表情符号(最好是Apple表情符号)生成一个图像文件。我认为这应该是一件相当简单的事情,但是我使用的每一种工具最终都会碰壁。我还考虑过使用表情符号集,例如thisone我可以在需要时查询。不幸的是,我链接到的那个没有Unicode9.0表情符号,例如鳄梨(?)虾(?)或harambe(?)。你知道这样一个最新的集合吗?在代码方面,我试过opentype.js,但它不支持.ttc字体,这是我mac上表情符号字体的扩展(AppleColorEmoji.ttc)。我已将字体转换为.ttf,但这也不起作用:varopentype=require('opentype