当前位置:网站首页>树莓派mono上跨平台运行一个C#自制的简易图片处理器
树莓派mono上跨平台运行一个C#自制的简易图片处理器
2022-04-22 06:27:00 【Ki1381】
好奇mono到底能神奇到啥程度,决定在windows下开发一个C#小程序在树莓派上跑跑看。
具体环境:Windows 10 LTSC版 + VS2017专业版,Framework 4.5.2,普通winform。具体开发过程不是本文重点,略过,反正算法N年前都贴过,重新捡起来组装下而已。
树莓派:sudo apt-get install mono-complete
这里有个小插曲,发现最近在sudo apt-get update和upgrade之后,会发生桌面环境下文件管理器闪退的问题。解决起来倒不难(就是可能下载慢):额外再运行 sudo apt full-upgrade即可,重启后解决。
最终效果:
1、Windows下:
为了测试字体的有效性,特地用华文琥珀做了个略显浮夸的标签。其它主要使用微软雅黑。
树莓派下运行的效果图:

树莓派表示情绪稳定,单图处理速度还可以,并且字体有效。当然字体方面做了一些前期准备:
1、树莓派下mkdir /usr/share/fonts/msfonts
2、windows的fonts下找出msyh*.ttc和STHUPO.TTF,拷到树莓派刚建的msfonts下。
3、树莓派下cd /usr/share/fonts/msfonts
4、sudo mkfontscale即可。
但仍是有坑:
0、当然是大小写敏感,以及文件路径分隔符正斜杠还是反斜杠。打开文件对话框里预设*.jpg,显然找不到后缀是JPG的。总算理解了为啥别的软件要设一个*.*。
1、布局。windows下控件dock即便是none,不使用代码干预的情况下一个个挨个排运行起来能跟预想的一样,但mono里可能会不按预期布局,需要代码里精确控制。
2、GDI+支持。上文贴图里存在一个奇怪的问题。当选择框从右下开始到左上停止的时候,Windows里一切都是符合预期的,但在mono里,虽然界面上看不出问题,但同样的代码下,初始坐标莫名变成了(0,0)。另外,mono下读取EXIF信息没有问题,但是写入Bitmap会报错:Property not supported [GDI+ status: PropertyNotsupported]。目前暂时只能说这个小破软件存JPEG图片会丢EXIF。
3、目录中存在大量图片文件时,因为树莓派打开文件的对话框,无论哪个模式,死活都要显示预览图,因此可能会很卡。
暂时先这样吧。
版权声明
本文为[Ki1381]所创,转载请带上原文链接,感谢
https://ki1381.blog.csdn.net/article/details/104036979
边栏推荐
猜你喜欢

Unity基础知识2

Oracle unique index

Multithreading (thread class, runnable interface, callable interface, synchronized, lock, thread pool)
![Stm32外设篇 [四] RCC](/img/e1/e81d1e6017bebc87690227a7aa5f99.png)
Stm32外设篇 [四] RCC

UNITY遮罩点击下层UI游戏开始引导点击

VC call control

Dependency conflict finding and resolution (taking easypoi as an example, nosuchmethoderror or NoClassDefFoundError appears)

Unity读取excel 数据 并创建对应的json文件

Why is MySQL self incrementing primary key not continuous?

可视化编程——实验二
随机推荐
Instructions for functional interface @ functionalinterface
树莓派4:自定义网络时间来源
Problem C: 用链表实现约瑟夫环
Oracle unique index
Run program ~ customize similar CMD commands to open non system software
可视化编程——实验一
Stm32外设篇 [四] RCC
Opportunity interview questions
CSharp type conversion
[communication interface can bus]
MFC常用格式转换及函数
C# break,continue,return的区别和使用
Multithreading (threaded Communication [producer and consumer])
【GPS - NMEA-0183协议】
Unity ~ script life cycle
Dependency conflict finding and resolution (taking easypoi as an example, nosuchmethoderror or NoClassDefFoundError appears)
Xshell connect virtual machine
A unit interview question is attached (online mall)
UML class diagram
C#方法的使用