- 博客(46)
- 资源 (3)
- 收藏
- 关注
原创 golang png等图片转ico或bmp格式
我记得以前图片转换很快,不止有免费软件使用,还有很多在线转,也是免费,速度也快。不知道什么时间开始,图片转换开始变了,需要关注公众号,需要注册,然后还要充VIP才能免费转换……由于我这个是用gin接收图片文件后,调用Convert2ImageByFile函数进行转换,所以参数是sourceFile multipart.File。刚开始搜了下,说只能转BMP格式,要么转换完后,背景变黑,不好看;这里我是写死转换类型为ICO,大小为48*48,有需要的朋友可以根据传入参数,增加转换类型和ICO大小。
2024-05-09 16:35:45
443
1
原创 golang在goland编译时获取环境变量失效
goland在启动时,会加载环境变量,并在运行时缓存这些变量,导致在系统上操作缓存变更后,os包读到值不会变。我只用过goland编译器,不知道其他编译器会不会出现这种问题,或是哪位大神有其他解决办法,可以发评论告知下!且,重启某个项目是无效的,需要关闭所有项目,把goland都关闭后,重新打开,才能生效。但这个,其实很麻烦,每次一修改,就需要重启所有项目。修改后,读到的还是修改前的值。去更新环境变量,然后再去掉代码(是有点麻烦)新增后,读到的值还是空值;
2023-09-14 09:55:29
1171
原创 goland编译golang生成linux执行程序
现在Windows使用率还很高,我们平常开发使用的电脑都是Windows系统。所以我们在写代码、调试、测试等,都是在Windows系统下。所以我们常用的goland编译配置的,都是Windows环境,生成也的EXE执行程序但我们很多部署服务器都是linux,所以要部署的时候,需要生成linux环境下的执行程序网上有说,修改配置后再编译,如:set CGO_ENABLED=0set GOOS=linuxset GOARCH=amd64但,生成完,需要把配置改回来后,才能再用.
2021-11-01 17:33:45
5733
原创 golang图片属性orientation在image.Decode后丢失,导致图片上传后旋转
通常图片web上传后,会进行image.Decode() 解码、resize.Reszie()图片压缩、jpeg.Encode()编码保存等处理。但部分图片在处理过后,图片显示会被旋转。通常在于苹果手机拍出的照片,而安卓手机正常。这是苹果手机等设备拍照后,图片文件上带有orientation方向属性,系统打开显示时会自动根据方向属性进行调整,让我们看起来是正常的。而后台处理后,orientation方向属性丢失(类似安卓手机拍的照片),导致保存后的新图片被旋转。可以通过github.com.
2021-07-27 11:53:18
1233
1
转载 golang微服务框架go-zero系列-1
为什么使用go-zero 可以有第三个选择 golang圈子不大,微服务框架框架屈指可数:除了go-micro、go-kit,几乎没有其他选择。go-zero为此提供第三个可能。go-micro 对webapi支持并不友好,需要运行micro指令,难以定制 创业产品需要一款支持...
2021-03-10 15:34:20
2361
2
转载 DELPHI的BPL使用
DELPHI的BPL使用 了解BPL和DLL的关系将有助于我们更好地理解DELPHI在构件制作、运用和动态、静态编译的工作方式。对初学DELPHI但仍对DELPHI开发不甚清晰的朋友有一定帮助。BPL vs. DLL(原文http://www.delphi3000.com/ 翻译:房客)第一部分:有关包的介绍一般我们编写编译一个DELPHI应用程序时,会产生
2015-12-29 09:51:56
9107
转载 让我们一起Go(十三)
前言:上篇,我们了解了Go语言接口的一些知识,在这篇中,我们将继续聊聊接口这东西。 Go语言空接口Go语言中定义一个空接口,也就是没有任何函数需要实现的接口就是一个空接口,作为一个空接口,因为对象无需实现它的函数,所以它可以指向任何对象,看下面的示例:上面的empty接口变量分别可以被赋值为int类型,string类型,结构类型和数组类型等等。最后,使用Pr
2015-06-29 10:27:55
504
转载 让我们一起Go(十二)
前言:上篇中,我们讲到了在Go语言中如何定义方法,今天,我们将进一步深入Go语言的面向对象编程。 一、Go语言中的接口首先来看一个最基本的接口: 和定义一个结构体类似,只不过将struct换成了interface,然后声明了两个函数:draw()和count()。就这么简单,一个接口就定义好了,那么如何实现接口呢?在java中我们会让一个类去实现接口,在实现
2015-06-29 10:27:19
759
转载 让我们一起Go(十一)
前言:今天又要继续了,当初自己的挖的坑必须得填啊,尽管天气非常滴热,但是丝毫无法阻挡我填坑的热情,那么,我们继续让我们一起Go!!! 定义方法:这里我们要来看看Golang中的(Methods)方法了。我们在让我们一起Go(九)中谈到过Go语言的函数(functions),这和今天说的方法不是一个概念哦。熟悉面向对象的同学应该知道,一般我们把类的成员函数叫做Meth
2015-06-29 10:26:48
861
转载 让我们一起Go(十)
前言:本系列还没流产,继续难产中,哈哈,只怪我没专心,在期间又偷偷去学了python,ruby,scala,haskell这几种语言,如果你不幸是本系列的读者,那么你得慢慢等后面的了,等不及可以过几年再来看看啊^_^。因为,Go语言没那么迫切需要用到,而且个人兴趣比较广泛,要玩的东西太多了,自然暂时无法一口气完成Go的学习。对于读者,只能说非常抱歉啦。废话不多说了,今天补上一篇。
2015-06-29 10:25:18
761
转载 让我们一起Go(九)
一、Go语言中的函数终于轮到函数了,其实也没有什么好说的,无非就是一个语法问题,c语言有c语言的语法,c#有c#的语法,那么Go语言的函数如何呢?在前面的文章中其实已经看到过一些简单的函数了,今天我们再来详细看看,所以请看下面: 在上述的代码中,我们一共声明并定义了两个函数,一个是say,另一个则是一个匿名函数,而且这里通过匿名函数,生成了一个函数闭包。在Go语言中使用fu
2015-06-29 10:17:22
779
转载 让我们一起Go(八)
Go语言中的运算符 上述表格(引自网络)已经很清楚的展示了Go语言的运算符已经它们的优先级,对于非常常见的这里就不一一介绍了,这里举几个运算符来玩玩。先看一例子:题目--给定一个int型数组,找出其中的奇数,打印出来?。大家动手试试,可以选择上面表格中的任意运算符完成。这题目很简单,如果一个数不能被2整除,那么就是奇数,好,我们试试%运算符,该运算符是取模,也
2015-06-29 10:15:51
442
转载 让我们一起Go(七)
一 不可变的字符串在上一篇中,我们在最开始的时候提到过这个特性,不过不小心后来给忘记说了,对此非常抱歉(= =||),所以就今天补上了。还是用例子来说明,比较容易,请看下面: 这里的例子很好的解释了,字符串的不可变性,当你把13行注释去掉后,编译该文件就会报错,因为不允许修改字符串内容。很多初学者可能认为第10行不是改变字符串内容了吗?这种理解是错误的,第10行只是将变量cat指
2015-06-29 10:15:20
443
转载 让我们一起Go(六)
一 Go语言之字符串 与大多数面向对象编程语言一样,Go语言也具有string(字符串)类型,只不过它与其它语言例如java中的String类型不一样的是它是值类型。并且注意声明的关键字是string,全部小写的哦,亲(java程序员尤其注意,c#程序员偷乐中......)。除此之外,它还有个特性就是不可变性,这里需要注意的是指字符串本身不可变并不是字符串变量不可变,稍后看例子就能明白。
2015-06-29 10:14:15
874
转载 让我们一起Go(五)
前言转眼间,已经2013年了,新的一年,还是继续学习Go啊,本系列不小心跨年了,哈哈哈。上篇中我们初步了解了Go语言的变量声明,今天我们首先还是要继续聊聊变量。文章更新较慢,请谅解,因为公司项目太忙,白天基本没时间,晚上抽空写的,且本人水平有限,难免有不对之处。一、再谈Go语言变量上篇中,我们知道在Go语言中是通过var 关键字来声明变量的,那么声明变量,我们没有给变量赋值,那些变
2015-06-29 10:06:25
843
转载 让我们一起Go(四)
一、如何Go语言中声明变量首先,我们创建一个新的Go语言的文件,命名为variable.go,这里你或许会问为什么叫这么个名字,如果你不认识这个单词可以立刻去查下。查完了相信你就知道意思了。建立好文件后,用你喜欢的文本编辑器或者ide开始跟着我一起练习吧。如果你还记得前几篇的内容,相信你已经会写Go语言的基本程序结构了,如果不记得了,再去复习下吧。或者你懒得回去再看,就继续往下看,不过建议
2015-06-29 10:05:19
789
转载 让我们一起Go(三)
在前几篇中,我们搭建好了Go语言的开发环境,从今天开始就正式进入Go语言的编程学习了。 一、Go语言程序基本结构与外部包的导入 首先来看Go语言程序的基本结构: 以上就是最基本的结构,主函数中就通过导入的fmt包,调用该包的Printf函数,向控制台打印字符串。其中import “fmt” 还可以为导入的包指定别名,像下面那样import format “fmt
2015-06-29 10:00:30
811
转载 让我们一起Go(二)
上一篇中,我们初次接触了Go这门语言,并配置了环境,在最后还动手编译并运行了第一个Go的程序。虽然对于运行的程序并没有解释里面的语法,因为对于初学者来说,这并不着急,因为我们要循序渐进,先动手实现一些你并不了解的东西之后再慢慢解释,可能比直接讲一大堆语法效果更好,给人的印象更深刻。今天,我们还得继续完善下我们的准备工作,因为,在上篇中我们看到,我们的条件有些艰苦,在编辑器中敲的代码,而且在命令行中
2015-06-29 09:59:15
989
转载 让我们一起Go(一)
前言: 近年来各种新的计算机编程语言不断出现,这对于我们程序猿来说,是一件多么欢乐的事情啊。特别是对于像笔者一样的多情者,更新欣喜万分。而最近一次偶然的机会笔者接触到了Go语言,于是再也忍不住其美妙的语法而写文于此。其实,Go语言在几年前就已经出现了,对于许多人来说,或许不是什么新东西,而对于像笔者这样刚接触或者第一次听说的人来说,确实是新事物,那么到底Go语言是怎么出现的?为什
2015-06-29 09:57:32
799
转载 FireDAC 下的 Sqlite [12] - 备忘录(草草结束这个话题了)
该话题的继续延伸主要就是 SQL 的语法了, 草草收场的原因是现在的脑筋已经进入了 IntraWeb 的世界.相关备忘会随时补充在下面://连接多个数据库的参考代码:FDConnection1.ExecSQL('ATTACH ''c:\hr.sdb'' AS hr');FDConnection1.ExecSQL('ATTACH ''c:\cust.sdb'' AS cu
2015-06-16 17:15:54
574
转载 FireDAC 下的 Sqlite [11] - 关于批量提交 SQL 命令的测试
可把下面代码直接贴在空白窗体上, 以快速完成窗体设计:object DBGrid1: TDBGrid Left = 0 Top = 0 Width = 265 Height = 338 Align = alLeft DataSource = DataSource1 TabOrder = 0 TitleFont.Charset = DEFAULT_
2015-06-16 17:15:22
809
转载 FireDAC 下的 Sqlite [10] - 使用 R-Tree 搜索
R-Tree 主要用于三维空间的搜索, 据说这种搜索算法非常之快, 哪怕百万条记录也是眨眼间的事!SQLite 支持 1-5 维, FireDAC 也提供了 TFDSQLiteRTree 控件以方便定义回调函数. 为了简单, 我用二维表进行了成功的测试.建立 R-Tree 表(索引)时需要使用特定语法, 譬如:FDConnection1.ExecSQL('CREATE VIRT
2015-06-16 17:14:16
908
转载 FireDAC 下的 Sqlite [9] - 关于排序
SQLite 内部是按二进制排序, 可以支持 ANSI; FrieDAC 通过 TFDSQLiteCollation 支持了 Unicode 排序, 并可通过其 OnCompare 事件自定义排序.下面的例子, 测试了这两种排序的不同.可把下面代码直接贴在空白窗体上, 以快速完成窗体设计:object DBGrid1: TDBGrid Left = 0 Top
2015-06-16 17:13:17
920
转载 FireDAC 下的 Sqlite [8] - 自定义函数
Sqlite 本身没有这个功能, FireDAC 通过 TFDSQLiteFunction 增加了该功能; 尽管通过某些 SQL 语句或通过视图也可以达到类似效果, 但函数会更灵活些.本例先建了一个成绩表, 然后通过两个 TFDSQLiteFunction 实现了 "总分" 与 "平均分" 的计算.你可以复制下面文本框中的内容, 然后直接往窗体上贴, 以快速完成窗体设计:o
2015-06-16 17:11:58
956
转载 FireDAC 下的 Sqlite [7] - 备份、优化、事务(Transaction)
用 TFDSQLiteBackup 控件, 两三行代码即可完成 Sqlite 数据库的备份.procedure TForm1.Button1Click(Sender: TObject);begin {先初始化目标} FDConnection1.DriverName := 'SQLite'; FDConnection1.Params.Add('Database=C:\Temp\
2015-06-16 17:10:22
864
转载 FireDAC 下的 Sqlite [6] - 加密
主要就是设置 TFDConnection 的两个链接参数: Password, NewPassword, 非常简单.const dbPath = 'C:\Temp\SQLiteTest.sdb';{建立加密数据库, 密码是 mm123}procedure TForm1.FormCreate(Sender: TObject);const strTable = 'CREAT
2015-06-16 17:09:38
907
转载 FireDAC 下的 Sqlite [5] - 数据的插入、更新、删除
先在空白窗体上添加: TFDConnection、TFDPhysSQLiteDriverLink、TFDGUIxWaitCursor、TFDQuery、TDataSource、TDBGrid(并在设计时关联好).你也可以复制下面文本框中的内容, 然后直接往窗体上贴, 以快速完成以上的添加过程:object DBGrid1: TDBGrid Left = 16 Top
2015-06-16 17:09:05
1516
转载 FireDAC 下的 Sqlite [4] - 创建数据库
建立数据库的代码:{建立内存数据库的一般代码:}begin FDConnection1.DriverName := 'SQLite'; //同 FDConnection1.Params.Add('DriverID=SQLite');// FDConnection1.Params.Add('Database=:memory:'); //可省略这行, FireDAC 的源码显示, i
2015-06-16 17:06:15
1555
转载 FireDAC 下的 Sqlite [3] - 获取数据库的基本信息
在空白窗体上添加: TFDConnection, TFDPhysSQLiteDriverLink, TFDGUIxWaitCursor, TMemoprocedure TForm1.FormCreate(Sender: TObject);var List: TStrings; V: Variant;begin FDConnection1.Open('DriverID=S
2015-06-16 17:04:48
1098
转载 FireDAC 下的 Sqlite [2] - 第一个例子
为了方便测试, 我把官方提供的 C:\Users\Public\Documents\Embarcadero\Studio\14.0\Samples\data\FDDemo.sdb 复制了一份到 C:\Temp\FDDemo.sdb.{新建一个 VCL Forms Application, 然后添加如下控件(建议按 Ctrl + . 后用键盘输入添加):}TFDPhysSQLiteD
2015-06-16 17:03:13
785
转载 FireDAC 下的 Sqlite [1] - 前言
很长时间没静下心来写博客了, 现在回来, 是 Delphi 不断地进步让我感动、振奋.Delphi XE5 并入了 FireDAC, 第一印象非常好, 恐怕 dbExpress 等等都要靠边站了.让我最高兴地是 FireDAC 对 Sqlite 的支持!优秀的 Sqlite 早就有很多 Delphi 的包装(http://www.sqlite.org/cvstrac/w
2015-06-16 17:02:11
968
原创 DevExpress14.1.2 xe XE6 快速安装
之前在在网上下载的DevExpress14.1.2 xe-XE6都是一个个包文件,需要一个个去查找编译安装,而且需要有一定的顺序要求。所以下载了好久了都没有安装。最近在网上找了个旧版的安装方法,以此来做参考,做了个快速安装的项目组文件,希望能帮到大家!下载地址:http://pan.baidu.com/s/1gdkW0Qf压缩包中包含了安装说明。
2014-10-15 11:22:41
1799
转载 SPComm的一点小诀窍 spcomm的问题导致数据丢失
最近几天完成了BiasDAC的程序编写。调试的过程还算比较顺利,除了几个有点bt的小问题。其中一个困扰了我两三天的时间,今天上午终于将其解决。由于BiasDAC是用RS232 Serial Port通信的,延用之前的程序,使用了Delphi的SPComm控件。在之前的使用中,SPComm控件一直工作正常,使用的是一般的string进行消息的传递。而BiasDAC由于通信协议的限制,
2014-02-12 15:00:34
2026
原创 Delphi 收缩Access数据库
<br /> 我自己在做一个自己用的个人理财系统时,由于想方便程序,所以使用了Acess数据库,使用方便。本是没什么事,做完了之后就突然想到我之前做的一些使用SQL数据库的程序时,偶尔删除大量数据时要收缩下数据库,我就自己没事收缩下Acess数据库,没想到居然小了一半,这还只是我测试时使用的数据,如果长此以往那空间不是浪费太大了。<br /> 之后我就去找了好多的用命令收缩数据库的方法,但是找了好多,大体都是两种,一种是CompactDatabase(原数据库文件,新数据库文件,原密码,
2011-01-26 17:33:00
1210
转载 SQL导出insert 语句
<br />最近需要导出一个表的数据并生成insert语句,发现SQL Server的自带工具并米有此功能。BAIDU一下得到如下方法(亲测OK)<br />用这个存储过程可以实现:<br /><br />CREATE PROCEDURE dbo.UspOutputData <br />@tablename sysname <br />AS <br />declare @column varchar(1000) <br />declare @columndata varchar(1000) <br />de
2010-11-04 11:06:00
890
转载 Delphi编码规范
<br />目录<br /> <br /> <br /> <br />1、前言... 2<br />2、源程序书写规范... 2<br />2.1通用源代码格式规范... 2<br />2.1.1缩进... 2<br />2.1.2边距... 2<br />2.1.3 Begin…End语句... 2<br />2.1.4注释... 3<br />2.2 Object Pascal语句格式书写规范与用法... 3<br />2.2.1括号... 3<br />2.2.2保留字和关键字... 3<br />2
2010-10-30 11:44:00
571
XE XE6 SPcomm 串口
2014-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人