精华内容
下载资源
问答
  • 在网络上下载的一些flash小动画看到很多很好看的画面这里教你怎样把整个flash小动画转成JPG图片格式主要是利用Flash转Jpg格式转换器通过录制功能把flash上的画面一个个用静态的图片给展示出来注意的是短片越长转换...
  • C#编写缩小jpg格式文件大小的工具有一天,客户领导说网站加载慢客户不懂技术,只管提需求源代码,复制可用总结 有一天,客户领导说网站加载慢 客户的网站请广告公司设计的,堆叠了大量的高精度美图。忽然有一天,...

    有一天,客户领导说网站加载慢

    客户的网站请广告公司设计的,堆叠了大量的高精度美图。忽然有一天,老总说网站怎么这么慢?

    客户不懂技术,只管提需求

    网站在建立的时候就已经告知会有什么优点和弱项了,但是客户都是善于遗忘的人。他们只管现在,不管过去。所以唯一不必的是变化这句话就又被验证了一次。
    怎么办呢?

    1. 全新的界面设计 ,重构网站?显然不太现实,刚做好没两个月。
    2. 缩小图片文件大小是唯一可行可试的方案。第一步缩小时将png全部改为了jpg,因为不用考虑透明度的问题。第二步就是降低jpg图片的质量,随之减小文件大小。
      tinypng.com 做了几张,感觉太麻烦了,这要做到几时去呢?
      于是自己写了一个小工具,可以批量的缩小jpg文件的大小,当然图片质量会略有下降了,但是普通访问者都几乎无法注意到,是可以接受的。

    为了方便,写了一个Console应用,命令行方式运行:
    Please enter resize argument.
    Usage: JpgResizer -r 75 -o -b
    Usage: JpgResizer *.jpg -r 75 -o -b -s
    -b : 备份原始文件,在覆盖模式时有用 backup the original file. use when -o is set.
    -o : 覆盖模式,直接重写原文件 overwrite the original file.
    -s : 搜索当前目录下的所有子目录下的文件 search all jpg files in sub-directories. ignore filename.
    -r : 压缩后图片质量级别 compress level. default is 75, 100 is best.
    在这里插入图片描述

    源代码,复制可用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.IO;
    
    namespace JpgResizer
    {
        class Program
        {
            static bool isOverwrite = false;
            static Int64 ratio = 75L;
            static bool isIncludeSubDirectories = false;
            static bool isBackup = false;
    
            static void Main(string[] args)
            {
                
                string filename = "*.jpg";
    
                if (args.Length == 0)
                {
                    Console.WriteLine("============== JPG Compress tool ==================");
                    Console.WriteLine("= Author : shrek");
                    Console.WriteLine("= Contact: (QQ390652)");
                    Console.WriteLine("= Date   : 2021.01.21");
                    Console.WriteLine("= Hangzhou Codans Cyberinfo Company. ");
                    Console.WriteLine("===================================================");
                    Console.WriteLine("Please enter resize argument.");
                    Console.WriteLine("Usage: JpgResizer <filename> -r 75 -o -b");
                    Console.WriteLine("Usage: JpgResizer *.jpg -r 75 -o -b -s");
                    Console.WriteLine(" -b  : backup the original file. use when -o is set.");
                    Console.WriteLine(" -o  : overwrite the original file. ");
                    Console.WriteLine(" -s  : search all jpg files in sub-directories. ignore filename.");
                    Console.WriteLine(" -r  : compress level. default is 75, 100 is best.");
    
                    return;
                }
    
                filename = args[0];
                if (!filename.Contains(".jpg") && !filename.Contains(".jpeg") && !filename.Contains("*"))
                {
                    Console.WriteLine("   missing filename.");
                    return;
                }
    
                var index = 1;
                foreach (var item in args.Skip(1))
                {
                    if (item.ToLower() == "-o")
                    {
                        isOverwrite = true;
                    }
                    if (item.ToLower() == "-b")
                    {
                        isBackup = true;
                    }
                    else if (item.ToLower()== "-s")
                    {
                        isIncludeSubDirectories = true;
                    }
                    else if (item.ToLower()=="-r")
                    {
                        if (args.Length >= index+1)
                        {
                            ratio = Int64.Parse(args[index + 1]);
                        }
                        else
                        {
                            Console.WriteLine("  missing ratio paramenter.");
                            return;
                        }
                    }
                    index++;
                }
    
                if (isIncludeSubDirectories)
                {
                    ListJpg(AppContext.BaseDirectory);
                }
                else { 
                    VaryQualityLevel(filename, ratio, isOverwrite);
                }
    
            }
    
            private static void ListJpg(string dir)
            {
                DirectoryInfo d = new DirectoryInfo(dir);
                FileInfo[] files = d.GetFiles("*.jpg");//文件
                DirectoryInfo[] directs = d.GetDirectories();//文件夹
                foreach (FileInfo f in files)
                {
                    VaryQualityLevel(f.FullName, ratio, isOverwrite);  
                }
                //获取子文件夹内的文件列表,递归遍历  
                foreach (DirectoryInfo dd in directs)
                {
                    ListJpg(dd.FullName);
                }
            }
    
            private static ImageCodecInfo GetEncoder(ImageFormat format)
            {
                ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
                foreach (ImageCodecInfo codec in codecs)
                {
                    if (codec.FormatID == format.Guid)
                    {
                        return codec;
                    }
                }
                return null;
            }
    
            private static void VaryQualityLevel(string fileName,Int64 ratio,bool isOverwrite)
            {
                Console.WriteLine($"filename : {fileName}");
                // Get a bitmap. The using statement ensures objects  
                // are automatically disposed from memory after use.  
                var originalSize = new FileInfo(fileName).Length;
                var newSize = 0L;
    
    
                var newFileName = Path.GetFileNameWithoutExtension(fileName) + "_new" + Path.GetExtension(fileName);
                if (isOverwrite)
                {
                    newFileName = fileName;
                    if (isBackup)
                    {
                        var backupFileName = Path.GetFileNameWithoutExtension(fileName) + "_original" + Path.GetExtension(fileName);
                        File.Copy(fileName, backupFileName, true);
                    }
                }
                using (Bitmap bmp0 = new Bitmap(fileName))
                {
                    var bmp1 = new Bitmap(bmp0);
                    bmp0.Dispose();
                    ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
    
                    // Create an Encoder object based on the GUID  
                    // for the Quality parameter category.  
                    System.Drawing.Imaging.Encoder myEncoder =
                        System.Drawing.Imaging.Encoder.Quality;
    
                    // Create an EncoderParameters object.  
                    // An EncoderParameters object has an array of EncoderParameter  
                    // objects. In this case, there is only one  
                    // EncoderParameter object in the array.  
                    EncoderParameters myEncoderParameters = new EncoderParameters(1);
    
                    EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, ratio);
                    myEncoderParameters.Param[0] = myEncoderParameter;
                    bmp1.Save(newFileName, jpgEncoder, myEncoderParameters);
                    newSize = new FileInfo(newFileName).Length;
                    Console.WriteLine($"  resize ok. {originalSize} -> {newSize} { ((originalSize - newSize) * 100 / originalSize).ToString("0.#") }% compressed.");
                }
            }
        }
    }
    

    总结

    参考了以下信息,站在别人的肩膀上就看得远一些。

    【日月谈】是自己维护的一个微信小程序,可以在线写日记,有好多朋友写了快20年,您如果有兴趣,可以去用用看。
    https://everyday.yuelvsu.com

    #github https://github.com/ihugang/JpgResizer #
    [1]: https://docs.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-set-jpeg-compression-level?view=netframeworkdesktop-4.8&redirectedfrom=MSDN

    展开全文
  • 如题 ![图片说明](https://img-ask.csdn.net/upload/201903/21/1553178631_990905.jpg) 我的配置如图 像在access为 ...那这格式怎么正确的写呢 有provider data source user password database
  • 今天就介绍一下c#中文件过滤器的怎么用。文件过滤器,顾名思义是用来筛选文件的。做软件的过程中,有些功能需要打开指定类型的文件,例如打开*.jpg或者筛选出*.txt文件,这时候往往需要文件过滤器。一、简单的文件...

    做一个自己的软件一直是自己的梦想,做一个简单的软件比较容易,但是想要做到精细那就必须要了解做软件语言。自己比较喜欢C# ,只是因为她的IDE非常好用。今天就介绍一下c#中文件过滤器的怎么用。

    文件过滤器,顾名思义是用来筛选文件的。做软件的过程中,有些功能需要打开指定类型的文件,例如打开*.jpg或者筛选出*.txt文件,这时候往往需要文件过滤器。

    一、简单的文件过滤器。

    首先建立一个OpenFileDialog打开文件对话框。

    在窗体中拖拉一button,双击button进入到代码,然后键入代码:

    private void button1_Click(object sender, EventArgs e)

    {

    OpenFileDialog openfile = new OpenFileDialog();

    openfile.ShowDialog();

    }

    按F5运行后查看效果,点击刚刚新建的button,可以打开文件对话框,如图所示:

    2c0aac9c05a3547ef64c38aa023c8261.png

    这样新建的文件对话框是没有文件过滤器的,接下来还有添加文件过滤器。在刚刚的代码中添加一句代码:

    openfile.Filter = "文本文件|*.txt";

    这是最简单的文件过滤器,其中“文本文件”是过滤器的描述,这是给使用者看的,易于理解,后面的“|*.txt”才是真正的筛选器。

    201180e9b88277922fdd149ed9831808.png

    二、多重筛选的文件过滤器

    也许你已经发现,平时用到的软件不只是一个过滤器,而是能过滤筛选各种文件,那么怎样才能添加不同的过滤条件。

    还是在button的代码中,添加代码。

    openfile.Filter = "文本文件|*.txt;*.html;*.docx;*.doc|图像文件|*.jpg;*.jpeg";

    后果图:

    7380703c77f1b2b78b5830c9e3b85d73.png上面展示了两种多文件筛选,一种是同时筛选多种文件:“标签|*.txt;*.docx;*.doc”,不同类型之间用分号“;”隔开。一种是分开筛选:openfile.Filter = "文本文件|*.txt;*.html;*.docx;*.doc|图像文件|*.jpg;*.jpeg";能同时显示多种需求筛选,如上图所示,不同条件集合用“|”隔开。

    三、获取选取文件的路径。

    我们知道,打开一个文件需要知道他的路径,例如用OpenFileDialog打开文件对话框中选取的文件,其实在里面“打开”,事实上没任何效果,这需要我们点击了“打开”后还需要我们进一步处理。最简单的打开文件的方法就是要获取这个文件的路径。现在就介绍一下怎么获取OpenFileDialog中点击“打开”之后,获取文件的路径。直接上代码

    private void button1_Click(object sender, EventArgs e)

    {

    OpenFileDialog openfile = new OpenFileDialog();

    openfile.Filter = "文本文件|*.txt;*.html;*.docx;*.doc|图像文件|*.jpg;*.jpeg";

    openfile.ShowDialog();

    MessageBox.Show(openfile.FileName);

    }

    还是刚刚的文件,只要一句简单的代码openfile.FileName就能获取文件的路径,有了路径就可以打卡文件了:

    595e578cb1cb399144a84423fab878c9.png

    如果有不懂的或者有疑问的欢迎留言交流。

    展开全文
  • 原标题:ArcGIS常用操作技巧大汇总1、影像格式的转换例如把jpg格式转换为tiff格式。可以在arctoolbox中的conversiontools-->to Raster-->Raster to Other Format multiple)。2、矢量化准备矢量化前建立一个....

    原标题:ArcGIS常用操作技巧大汇总

    1、影像格式的转换

    例如把jpg格式转换为tiff格式。可以在arctoolbox中的conversiontools-->to Raster-->Raster to Other Format multiple)。

    2、矢量化准备

    矢量化前建立一个.mxd工程文件,该文件为索引文件,记录的是所有图层的相对路径和图层渲染标注等信息。然后通过arcaltalog建立点线面图层,添加到工程中即可进行矢量化操作,主要叠放顺序是点在上,线在中间,面下面,待矢量的底图放到最新面。在大的工程中往往需要建立personalgeodatabase数据库,主要是方便管理,并且可以通过access打得开。

    3、矢量化设置捕捉功能

    在Editor--Snapping->SnappingToolbar可以设置捕捉的类型,如点、节点、边界等。

    4、设置点显示的比例尺

    在矢量化时,如果设置了点的大小,在放大和缩小图层是发现点不会底图放大缩小变换,需要设置缩放的比例尺。

    5 、合并要素

    如果想对两个点,线,面要素合并成一个要素,可以通过shift选择要合并的要素,然后在Editor->merger,需要指定要合并到的目标要素。

    6、为底图做地理配准影像配准空间参考配准地理参考过程地理Georeferencing

    校正是对没有坐标信息的底图,如tiff,img等底图赋予地理坐标信息的过程。可以通过通过右击,弹出的功能条中选择Georeferncing工具,然后对要进行校正的底图添加控制点(controlpoint),一般最少添加4个角上控制点,可以通过点击连接表打开控制点的坐标信息并修改,添加超过3个后会出现残差。如果精度不够可以多加些点进行加密。只有校正后的图片才可进行矢量化。该方法是针对影像做配准的。

    而空间配准spatialadjustment是指的对矢量图层的配准。

    7、栅格影像的裁剪

    在对一个大的遥感或者地形图操作时,往往不需要其全部范围。那么可以根据定义的范围对底图进行裁剪,可以根据已有的边界图形裁切(勾选使用输入裁切要素的几何特征作为边界,生成的是不规则)或者根据边界图形的最大最小值组成的矩形进行裁切。

    工具在:ArcToolbox-->DataManagerment Tolls-->Raster-->Raster Processing-->Clip。

    8 、ArcGIS矢量的裁剪

    工具位于ArcToolbox-->Analysis Tools-->Extract-->Clip。其中输入要素Input Feature为被裁切的图层(可以为点线面),clip feature裁切要素为裁切范围边框(需要为面)。注意:裁切后的要素数量是根据原裁图层决定的,如果原图层的一个要素对象被裁切为多个部分,那么裁切后作为一个多部分对象,属性表中仍然为一条记录。

    9、ArcGIS矢量数据的空间校正

    空间校正的目的是对于地理上不匹配的图层进行匹配校正处理,例如两个图层之间存在一定偏移时。首先调出空间校正spatialadjustment工具。然后开启编辑功能,然后“spatialadjustment”-->set adjust data设置要校正的图层。然后通过工具new displacementlink工具拉出带箭头的线到对应的点位置即可,一般需要4个对应点即可。设置好对应点后点击校正rectify即可。

    10 、ArcGIS坐标点生成点图层文件(也可以带属性)

    首先准备存有XY坐标的xls或者dbf格式的数据,其中必须有XY的列头。通过arcgis的File-->add data-->add x y data即可。

    导入的数据为dataevent,然后右击导出export-->导出为shapefile格式即可。

    11、ArcGIS投影转换

    坐标转换是指不同的坐标系统之间的转换,例如从北京54转到西安80下或从6度分带装换到3度分带上。工具位于:ArcToolbox-->Datamanagerment Tolls-->Projections andTransformations-->Feature-->Project

    我国跨越的带宽:

    六度带我国跨11个6°带(为13-23带),一般用于1:2.5万及1:5万地形图;

    三度带我国跨22个3°带(为24-45带),一般用于1:1万的地形图。

    各个分带的中央经线算法:

    六度带为:带号×6°-3°(如16带中的中央经线为16×6°-3°=93°)

    三度带为:带号×3°(如31带的中央经线为31×3°=93°)

    我国经度跨度为: 73°E~135°E(最西端新疆的帕米尔高原上-黑龙江与乌苏里江的主航道汇合);

    故而我国的六度跨带为13~23带,三度带为24 ~45带。

    一个好记的方法:在中华人民共和国陆地范围内,坐标(Y坐标,8位数,前两位是带号)带号小于等于23的肯定是6度带,大于等于24的肯定是3度带。

    地形图上公里网横坐标前2位为带号,例如1:5万地形图上的横坐标为20345486,其中20即为带号,345486为横坐标值。

    12、ArcGIS重叠数据的交集叠加分析

    叠加分析就是找出两个图层之间的公共交集部分,并重新生成了一个新的图层。面面叠加的面,面线叠加的线。其中的属性信息是两部分的叠加。

    工具位于:ArcToolbox-->AnalysisTools-->overlay-->Intersect

    13、 ArcGIS重叠数据交集的擦除 erase

    如果两个图层的重叠部分需要删除,可以通过叠加分析出来的重叠区域或者直接用一个图层对另一个图层进行擦除erase操作,叠加分析后获取到了一个新的图层。

    工具位于:ArcToolbox-->AnalysisTools-->overlay-->Erase

    14、ArcGIS挑子区

    通过对已有的针对一个线或面要素对象操作,进行画出子图形。线对象操作:打开编辑,可以编辑工具中的整形要素工具reshapefeaturetool对线要素进行切割,把多余部分切除掉;或者使用分割split工具对一个线要素进行分割两部分(如果再想合并成一个可以通过shift多选后选择合并merger工具)。多边形要素操作:打开编辑后,可以选择切割reshape feature tool进行裁切掉多余部分;通过分割cut polygon tool工具对多边形分割为多个多边形,其属性也是复制;也可以在多边形内部画一个子区域对多边形挖空,注意所画的分割图形要交叉闭合。

    15、ArcGIS字段的结构编辑

    对于一个已经属性列定义好了的图层,如果需要修改其属性在arcgis中是不可以的。但可以其他方式,例如shapefile文件的可以找到文件对应的.dbf文件,然后选择用excel2003打开,对其中的列属性就行修改即可;如果是在mdb数据库中,则可以通过access数据库以设计表的形式属性列属性即可。

    16 、ARCGIS裁剪区 merger union trace

    合并:对两个要素对象进行合并,可以打开编辑后,选择要合并的要素,选择编辑editor-->合并merger,弹出要合并的到的目标要素,完成后多个要素会合并成一个要素(合并后只保留所选择的目标要素的属性)。

    联合:对另个要素联合是保留原有的要素对象,重新生成一个新的合并的要素。方法与上类似,选择联合union即可。

    追踪裁切:对已一个多边形对象按照另一个对象的边界分割,可以打开编辑选中两个多边形,然后选择裁切多边形cutpolygon tool-->再选择追踪trace工具,把要裁切的多边形的两边包围起来即可实现裁切。

    17、ArcGIS拓扑及拓扑规则的建立

    ①拓扑定义:空间拓扑描述的是自然界中地理对象的空间位置关系,是地理对象空间属性的一部分。

    ②地理对象的拓扑关系,主要有以下三种:

    相邻: 相邻关系确认对象之间是否在某一边界重合,例如行政区划图中的省、县数据。

    重合: 重合关系确认对象之间是否在某一局部互相覆盖,如巴士线路和道路之间的关系。

    连通: 连通关系可以确认通达度、获得路径等。

    ③构建拓扑意义:主要意义就是用于保证数据质量。拓扑在空间数据模型中表达和规定数据之间的空间关系。通过表达和规定这

    些空间关系,拓扑尽可能将地理数据与现实世界保持一致。拓扑是精准地表达空间数据的有效方法,通过严格地约束要素之间的关系,提高了空间数据的准确度和可用性。

    ④拓扑在arcgis软件中实现:在arcgis中只能对Coverage和Geodatabase这两种数据模型实现拓扑。下面以个人数据库test.mdb为例,在其中创建数据集dataset,指定坐标系,创建点线面要素图层。创建一些点和线,对面的生成可以使用拓扑工具中的打断相交线planarizelines工具对线段交点处打断操作(设置的打断容差指的是在该容差范围内要进行打断操作),然后利用拓扑工具--构建多边形工具construction polygons由线段构建多边形。在数据集上右击—新建--建立拓扑,弹出的建立拓扑对话框输入名称,容差,要进行拓扑的图层,设置等级,添加规则(重点部分,规则可以定义多个),点击确定开始创建拓扑,创建后可以提示是否进行验证validation,验证后即可以把拓扑加载到arcmap中查看拓扑错误,可以看到错误的会以红色标记出来。这样就可以进行编辑修改了,修改后可以多次使用validate工具查看拓扑错误。(对于多边形中空的可以通过创建多边形—追踪工具,补上漏洞即可。对于多边形重合部分可以通过切割多边形cutpolygons tool+追踪工具trace,再使用merger工具合并即可。)

    ⑤拓扑规则在AE中实现:首先,拓扑作为比较高级的功能,需要在程序里首先注册相应的功能代码。实现这一必要步骤的接口是:IAoInitialize,它有Initialize方法,必须在任何的其他组件前面使用,它可以初始化一个产品代码。这是C#的方法声明格式:public esriLicenseStatus Initialize(esriLicenseProductCode ProductCode);  esriLicenseProductCode有六个常量,我们在这里要用到的是esriLicenseProductCodeEngineGeoDB。下面看其拓扑实现的结构流程:首先需要获取工作空间,定义IWorkspaceFactory接口,它的作用是打开相应的数据库文件,然后赋予IFeatureWorkspace接口,然后获取相应的数据集接口IFeatureDataset,将IFeatureDataset赋予 ITopologyContainer以获取属于这个数据集的拓扑集合,然后利用ITopologyContainer的CreateTopology方法创建具体的拓扑类,这样就创建了属于相应数据集的拓扑了。然后就是通过一些接口和函数来设置这个拓扑的特性:图层、容限值、精度等级以及拓扑关系规则,最后通过ValidateTopology方法执行这个拓扑即可

    。可以看到它的实现过程跟上面的是一样的。

    18、 ArcGIS点线区要素之间的相互转换

    要素之间的转换包括点线面要素类型之间的相互转换。工具位于:arctoolbox—>datamanagerment toolsàfeature下

    ① 面转线:polygon to line是把面的轮廓线转换为一个线对象;面转点:feature topoint是只把面对象的中心点转换为点要素;面折点转点:featurevertices to points把面的轮廓的所有的折点转化为点。

    ② 线转面:feature to polygon是把闭合线转换为面对象。线转点:feature topoint是把线的中心点转为点。线折点转为点:featurevertices to points是把线的所有折点转为点。

    ③ 点转线:point to line是把有序列的点集合转为线;(测试发现不理想,会把所有的线最后点连上)

    19、CAD文件(dwg)转Arcgis格式(shp)

    打开对应的CAD数据图层(如polyline),右击图层—export data,保存为shapefile格式即可。或者conversion toolsàtoshapefile –feature class to shapefile(multiple)

    20、 ArcGIS延长线工具(批量处理未闭合线)

    对于本应闭合的多义线或者线段终点本应于另一个线段相交,但是由于误差导致没有相交。可以对要素图层进行批量延长,需要设置容差值。工具位于arctoolboxàeditingtoolsàextendline工具。

    21 、ArcGIS地图表达之建筑物阴影效果(百度地图)

    需要把面图层放到个人数据库mdb中才可以。右击多边形要素—转换为制图表达convert symbology representation,然后对打开制图表达的属性对话框,设置其颜色和偏移量即可。但是必须保存该工程后设置的地图阴影才会保存,因为该制图表达并不是存在数据库中,而是可以理解为一种渲染,保存在mxd文件中。(当然也可以对多边形复制一份,然后对其进行移动editortool—>move达到阴影效果,但是这样增加了数据量。)

    22、ArcGIS DEM(TIN)生成等高线文件

    例如如果输入数据为img,可以通过3D analyst toolsàconversionàfromrasteràrasterto TIN转成TIN;然后通过3D analyst toolsàterrain and TIN surfaceàsurfacecontour转为等值线;由于等值线间隔比较棱角,可以通过advancedediting高级编辑工具中的平滑工具(光滑线)进行平滑处理。如果等高线的点过少可以进行editingtools--加密density方法加密。

    23、 ArcGI中DEM生成等高线文件

    在生成等高线文件时,建议使用3Danalyst toolsàrastersurfaceàcontour工具,对栅格图形提取等高线。该方法生成的等高线稍微圆滑些,精度也稍微高些。

    24、ArcGIS线节点增密、平滑线与改线方向

    功能位于editingtools下面,①加密density是对线段和多边形进行加密,延长线extend line是根据指定的长度的容差对线段进行延长操作。②倒置线段flip line是值对线段的起止端点进行倒置的操作。③概化generalize是对线或面的概化,如果是直线的话中间的节点删除只保留拐点坐标。④修整线trim line是对于没有任何交点的悬挂线进行删除,此外对于超过相交点的部分超过指定容差进行删除。

    25、 ArcGIS文本坐标点在googleearth中展示

    注意的是在arcmap中的标注信息转换为kmz格式会在googleearth上显示出来。此外,文本格式的坐标必须包含X,Y坐标,如果显示高程还需要有Z坐标值。转换工具位于conversion toolsàTo kmlàlayerto KML。直接在Googleearth即可打开显示。

    26、ArcGIS自动矢量化(ArcScan工具的使用)Arcscan工具可以对灰度的栅格图像进行自动矢量化,工具位于右击工具条空白部位àarcscan即可调出。主要底图必须为灰度图像,在arcgis中打开后要设置其显示的方式为二值显示,即可对整个区域或者部分区域进行矢量化的工作,具体矢量化成面还是线等设置可以通过选项设置。

    27、Arcgis项目一等高线和DEM的制作流程

    首先①获得等高线文件(等高线文件一般从地形图上矢量化过来),

    ②然后利用3Danalyst toolsàTINmanagermentàcreateTIN生成tin数据,③然后可以利用生成的tin数据通过3Danalyst tools—>conversionàfrom TINàTIN to raster(也可以直接通过栅格插值rasterinterprolation-->地形到栅格topo toraster)。

    ④利用生成的栅格raster数据就可以进行坡度,坡向分析了(spatial analysttools—>surfaceàaspect&& slope)(即首先把矢量数据转为不规则三角网中间文件,然后再转换为栅格文件,就可以进行各种坡度,坡向,阴影分析了。)

    28、DEM相关知识

    DEM(digitalelevation model)是通过数字表达地形起伏变化的数据,即具备了高程信息的数字地面模型(DTM)。DEM是相对于纸质地形图而言的一种新型的地形图,是GIS空间数据库的重要组成部分,是地表演化和大气过程模型化的基础数据,以及GIS地学分析与三维空间数据处理及地形分析的核心数据。

    其数据类型有三种,即矢量型(等高线contour),规则型(grid型),不规则三角网型(TIN),

    矢量型:主要采用类似线状要素表达DEM。优点是比较直观,缺点是不便于完成空间三维特征的分析。来源主要是对地形图的矢量化获得。

    规则格网模型:又称为栅格型数据,主要是通过规则的格网单元来表达地形特征(如地面高程),其值是通过采样点的内插获取。优点是数据简单,较方便处理和存储;并且易于与航空、航天等遥感数据结合。缺点是在平坦地区数据存在冗余,地形复杂处表达不够精细。

    不规则三角网:triangulatedirregular network,通过对原始采样点,通过一定规则构建不规则三角面表达地形。优点是减少了规则格网在平坦地区的数据冗余,增加的复杂地形表达的精细程度。缺点就是数据稍微复杂。

    29、 ArcGIS将栅格图片作为矢量要素的属性

    首先确保文件存储在数据库(如mdb)操作,在其中的要素图层中添加存储图片的字段(如pic),注意类型一定要指定为栅格raster。然后打开编辑,即可的对属性表的图片字段(pic)通过右击可以添加图片。

    30、ArcGIS从几何图形获取点坐标

    对于arcgis的点线面的几何形状及坐标值是存在shape字段中的,但如果想获取其中的几何信息(如点图层的XY坐标,线图层的中间点XY坐标或者长度,面图层的中心点XY坐标或周长面积等)。可以通过打开要素属性表(如点图层),添加新字段用于存储想获取的信息(如X,Y坐标字段),然后在字段上选中该列,右击属性à计算几何(calculate geometry);同理可以获取其他要素图层的相关信息。

    31、ArcGIS之按属性对数据要素分层

    当一个要素图层包含多种类型的要素时(必须点图层中包含医院,学校,银行等各种要素),想按照其中的类别提取出来作为单独的图层,可以使用属性表中的查询功能。

    例如点图层中有一个名称name字段,可以①首先打开属性表à通过属性查询,打开属性编辑器,

    ②在其中编辑查询公式,如 [NAME] LIKE'*学*'就可以查询所有包含“学“的要素(注意单引号和星号都是英文状态)。还可以使用逻辑表达式,如or, and,not like等进行较为复杂的查询。

    ③对于查询到的后,可以通过“右击图层—>数据—>导出数据”,选择导出选中的要素数据。保存为shapefile格式即可,对于查询到的不符合条件的要素再进行删除修改操作即可。

    32、ArcGIS自动计算面积长度字段,一个图层多种显示样式

    ①把地图要素创建到数据库mdb中后,即可自动建立了长度和面积字段,并且新建要素后会自动计算。②对于一个图层要想用多种样式显示,可以通过设置图层的样式:右击图层à属性—>样式,可以根据不同的属性值设置显示的样式。设置后必须保存工程文件才会记录当前的样式设置,因为该信息记录在mxd文件中。

    33、ArcGIS多重缓冲区multi-buffer

    在工作中常用到多重缓冲多边形,但是自带的analysis tools-proximity-buffer是只能缓冲一次,但multiple ring buffer往往报错。那么可以打开自定义的缓冲向导。方法是:customize--customize mode,然后commands选项卡--tools--buffer wizard工具拖拽出来即可使用了。

    34、线线快速创建面

    1、需要有一个面图层存在,用于存储转换后的面要素。方法是在高级编辑下的工具“由线建立面”

    2、表格的连接join:要求有一个字段相匹配,名称可以不一样,但是数据类型必须一致(如都是文本或者数字)。join方法是该链接是视图上的暂时链接,如果要永久链接,则需要重新到处一份数据即可。常用于1:1 1:M

    表格的关联relate:较多的用于一对多,多对多,关联后不能显示关联好了,不能使得数据的扩充,只能帮助查看方便,需要identify查看即可(用处不大)。

    4、arcscan工具只能对黑白图层处理,所以①首先加载单个波段②通过重分类,分为2类,即二值化(如果不能分类则先计算唯一值,再点击分类即可),这时候就可以使用arcscan工具了。使用时需要开启编辑工具,然后使用倒F形状的图标,拉动一个区域即可对选中区域自动矢量化。

    图层的符号化显示:

    分类方法:

    ①自然分裂点:在数据跨度较大的地方自动设置断点,使用要素值变化较大的情况

    ②等间隔法:每个区间内跨度相同,使用连续变化的情况

    ③分位数法:每个区间中数量相同,使用分布比较平均的情况

    ④集合间距法:使用要素呈几何分布的

    ⑤标准差发:体现相对平均值的离散程度,使用要素分布正态分布。

    ⑥自定义间隔法:手动分割。

    符号库:自定义--样式管理器,可以根据现有的符号自己修改,拼接,也可以通过添加自己的图片作为符号。同时自己如果自定义可以下载FontCenter插件自己绘制。自己新建的符号库是保存到了mxd中的,需要首先把style符号库添加进来才可以用。

    匹配的时候,加载后,选择图层属性呢--类别--与样式中的符号匹配,选择自己的符号库,和匹配的字段,就可以自动匹配了。比如国家土地利用的分类,可以按照统一的制图标准显示。

    微信ID:bbs3s001返回搜狐,查看更多

    责任编辑:

    展开全文
  • 服务端接受到请求的时候将数据返给客户端,通讯已经建立好了,可以通讯,现在比较头疼的问题就是数据格式怎么来操作,因为每一台本地服务器所请求的数据不一样,可能有十多张表的数据的样子,还有一些xml、jpg、...
  • '建立Excel Dim xlApp, xlBook, xlSheet As Object xlApp = CreateObject("Excel.Application") xlBook = xlApp.Workbooks.Add xlSheet = xlBook.Worksheets(1) Dim row As DataRow '定义row为...
  • File_Name='c:\D.PNG' &&原图(此处可以是BMP,JPG,GIF,TIF,PNG,ICO格式的文件) GdipLoadImageFromFile(Strconv(File_Name + Chr(0),5),@nimage) *********开始写绿色的100********** lcText='100' lnLen = 2 * ...
  • 现在人们经常要去下载或者接收一些文件。比如说同事传来的文档,自己建立的文件,想看的电影等等,那大家都会怎么处理这些文件呢?科研工作者、学生们可能...·图片类型文件:有png格式的,有jpg格式的,有gif格式...

    现在人们经常要去下载或者接收一些文件。

    比如说同事传来的文档,自己建立的文件,想看的电影等等,那大家都会怎么处理这些文件呢?

    科研工作者、学生们可能需要阅读大量的文献,我们也需要阅读很多的电子书等等,这些文件你又是如何处理的呢?

    是一一归类好,还是堆在一个文件夹里就算了?

    以前我会按照文件的类型进行分类,并定期处理,但这个过程会耗费我大量的时间。·图片类型文件:有png格式的,有jpg格式的,有gif格式的。

    ·文档文件:有pdf格式的,有知网上面caj格式的,还有有word文档,分别是doc格式的和docx格式。

    后来我在学python的过程中,就想到了这个小需求,能不能用python批量操作呢?这样会减少我们的整理时间,能够让工作和学习效率更高。

    经历了一番和python的斗争之后,我终于写出来了这样的一个小代码。

    既然要归类,首先要建立对应的文件夹,这里面选择使用python原生的os库进行操作,要进行一系列的系统操作,选择使用shutil库。import os

    import shutil

    我打算将我A文件夹下面的各个文件夹里面文件区分开,那首先要让程序确定你的东西是在哪里。

    要先写一个path,我是给这些文件夹放在了F盘a,那我设置的path就是它,如果是别的目录,就写对应的路径就好了。path = “F:/A”

    文档的路径图例子如下:

    此处划重点:我们在程序中输入的路径和电脑系统中直接复制出来的路径不同,如果直接用从电脑系统中复制出来的,会报错。

    有三种方法可以解决这个问题。01:上面介绍的方法,将\换成/即可;

    02:将\换成\\即可,因为\在python中是有特殊含义的,就是转义符号, 那这个实际上这个\\就是代表将转义符号转义成正常的\;

    03:在这一串字符串前面加r,变成r“F:\A”,这样的话,也可以正常使用。

    这三种方法,逗汁儿更喜欢第一种~喜欢哪种方法就用哪种吧,但是在各种系统中第一种写法都支持哦,强烈推荐第一种。

    接下来就要在建立两个文件夹,分别存储图片和文档文件:os.makedirs(path + ‘/tupian’)

    os.makedirs(path + ‘/wendang’)

    装文件的文件夹建好了,那我们就进行下一步,在移动文件之前需要确定要移动的文件有哪些,这个要根据什么判断呢?

    我们知道确定文件是什么类型的就是后缀名啦,那我们就让程序知道什么后缀的属于图片文件,什么后缀的属于文档文件就好了。img_list = [‘png’,’jpg’,’gif’]

    wendang_list = [‘doc’,’docx’,’caj’,’pdf’]

    ·建立好了两个列表之后,就要进行循环来移动文件。for p in wendang_list:

    ·首先要先要确定文档所在文件夹,建立路径wendang_path= path + '/' + p

    ·用os.listdir()来确定这个文件夹里面有什么东西(哪些是pdf,哪些是word文件)wendang_files= os.listdir(wendang_path)

    ·利用循环来进行文件移动for i in wendang_files: #真正的移动文件夹中的文件

    ·shuil.move的两个参数分别表示,原来文件所在地以及要移动的位置

    shutil.move(pdf_path + '/' + i, path + '/wendang')

    ·删除原文件夹

    os.removedirs(wendang_path)

    这一部分就讲文档类的文件都移动进来了,那下一步就是将图片类的文件移动进来。for i in img_list:

    img_path = path + ‘/’ + i

    img_files= os.listdir(img_path)

    for m in img:

    shutil.move(img_path+’/’ + m, path + ‘/tupian’)

    os.removedirs(img_path)

    执行完以上代码后文件夹如下图所示:

    (吐槽一下,这个xmind调了半天也没调出来在正中间,让我这个强迫症很难受)

    刚才在讲解的过程中代码相对比较乱,现在给一份完整版。

    import os

    import shutil

    #建立路径

    path = “F:/A”

    os.makedirs(path + ‘/tupian’)

    os.makedirs(path + ‘/wendang’)

    #建立后缀列表

    img_list = [‘png’,’jpg’,’gif’]

    wendang_list = [‘doc’,’docx’,’caj’,’pdf’]

    #移动文档文件

    for p in wendang_list:

    wendang_path = path + '/' + p

    wendang_files = os.listdir(wendang_path)

    for i in wendang_files:

    shutil.move(pdf_path + '/' + i, path +'/wendang')

    os.removedirs(wendang_path)

    #移动图片文件

    for i in img_list:

    img_path = path + ‘/’ + i

    img_files= os.listdir(img_path)

    for m in img:

    shutil.move(img_path+’/’ + m, path + ‘/tupian’)

    os.removedirs(img_path)

    更多精彩,请关注我们的公众号:DC 学习助手

    展开全文
  • 现在人们经常要去下载或者接收一些文件。比如说同事传来的文档,自己建立的文件,想看的电影等等,那大家都会怎么处理这些文件呢?科研工作者、学生们可能需要阅读...·图片类型文件:有png格式的,有jpg格式的,有...
  • 现在人们经常要去下载或者接收一些文件。比如说同事传来的文档,自己建立的文件,想看的电影等等,那大家都会怎么处理这些文件呢?科研工作者、学生们可能需要阅读...·图片类型文件:有png格式的,有jpg格式的,有...
  • 最近为了赶实验自学了一点点点点的mfc,然后也是去百度了很多用于修改一些小...2、而且要注意的是,这个图片格式不可以是.jpg的哦,可以用画图软件打开,然后保存的时候保存为.bmp格式,而且不能是24位的,我保存的...
  • WinRAR 对 WAV、BMP 声音及图像文件可以用独特的多媒体压缩算法大大提高压缩率,虽然我们可以将 WAV、BMP 文件转为 MP3、JPG格式节省存储空间,但不要忘记 WinRAR 的压缩可是标准的无损压缩。 能完善地支持ZIP...
  • • 多媒体支持 包括常见的音频、视频和静态图像格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) • GSM GSM GSM GSM 电话技术 (依赖于硬件) • 蓝牙 Bluetooth, Bluetooth, Bluetooth, Bluetooth, EDGE, ...
  • 你去问别人 Vue-Resource 怎么样,他说不要用 Vue-Resource,因为 Vue-Resource 官方已经停止维护了,你应该用 Axios、或者 fetch。但是我们想拥抱 ES6 排除掉了 ES5的fetch(当然也有ES6-...
  • 求大佬帮忙看看用python怎么写呢。。跪谢大佬了! 下面为php代码: ![图片说明](https://img-ask.csdn.net/upload/201708/15/1502780176_733195.jpg) 下面为我写的不好用的python代码: ``` from __future__ ...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    支持墙纸格式JPG 、 BMP 、 PNG 和 GIF ;铃声 (MP3 、 AAC 、 AAC+ 和 WMA) 。 接入技术 蓝牙 (class 1) ;四频 (850 , 900 , 1800 , 1900) ;支持 3G , 802.11b 和 802.11g 。----------------------------...
  • 程序里我们先建立一个主工程,作为主界面,然后再建立一个对 话框类,将其加入工程中,然后在程序中调用自己新建的对话框类来实现多窗口。 实现过程: 1.首先新建Qt4 Gui Application 工程,工程名为nGui,Base ...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...
  • 因此它们不需要在领域之间建立缓慢的桥梁(例如,JavaScript到本地代码)。它的启动速度也快得多</li><li>Dart使Flutter不需要单独的声明式布局语言,如JSX或XML,或单独的可视化界面...

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

怎么建立jpg格式