帆布很酷! - 页 85

 
Nikolai Semko #:
遗憾的是,在 MQL4 中无法将资源作为数组附加。但其他一切都能正常工作。
当然,也可以通过硬手鼓来实现。例如,在 BMP 文件中插入 PNG 图像,即在 png 的开头添加 BMP 头,并将 png 本身作为 bmp 图像传递(即如果打开这样的 BMP,会出现不同透明度的彩色像素噪音)。然后在 MQL4 中将此 "bmp 文件 "作为资源附加。这对于市场来说可能是必要的,这样 ex4 就已经包含了一个密度更大的 png 格式图像。
供参考:png 比相同的 BMP 图像小大约 10 倍,但质量不变,此外还支持全透明。
在 ex4 文件中,真正的 BMP 资源是以压缩格式存储的,但不会少一个数量级。有必要进行精确检查。

顺便说一下,当图像像 png 一样具有透明度时,我从未能在 MQL4 中插入具有 alpha 通道的 BMP。要么不显示,要么无法编译。

这里有一个讨论https://www.mql5.com/en/forum/157832 因此,它只适用于 MT5。但有趣的是,BMP 存在阿尔法通道。

PNG 也不行......或者说不知道如何使用。


关于画布和缩放,谢谢,我会在 mq4 上试试。

 
Vitaliy Kuznetsov #:

顺便说一下,当图像像 png 一样具有透明度时,我从未能在 MQL4 中插入具有阿尔法通道的 BMP。要么不显示,要么不编译。

这里有一个讨论https://www.mql5.com/en/forum/157832 因此,它只适用于 MT5。但有趣的是,BMP 也有阿尔法通道。

在 PNG 中也无法使用......或者不知道如何使用。


关于画布和缩放,谢谢,我会在 mq4 上试试。


附上的是 mql4 版本。

附加的文件:
 
Nikolai Semko #:


所附的是 mql4 版本。

这很合适。谢谢!

 

起初我很高兴,但现在我却犯难了。我无法通过指标中的设置从外部加载文件,但却无法在编译文件中加载文件。

尼古拉-塞姆科,如果你有时间,请写下是否可行。如果您有设置透明度和文件选择的例子,也可以帮我。

 
Vitaliy Kuznetsov #:

起初我很高兴,但现在我却犯难了。我无法通过指示器中的设置从外部加载文件,但却无法在编译文件中加载文件。

尼古拉-塞姆科,如果你有时间,请写下是否可行。如果你有设置透明度和文件选择的例子,你会帮到我的。

我不明白,以 uchar 数组加载 png 并将其输入 Png 类对象有什么困难。
在 Png 类中添加 LoadPngFromFile(string file_name) 方法并不难。只是我没有给自己设定这样的任务,所以没有实现它。但您可以轻松实现它。
https://www.mql5.com/ru/docs/files/filereadarray
请看 Png 类的构造函数,它的输入是一个数组 uchar[],其中包含整个 png 文件。

*

哎呀,我真笨。接收文件名的第二个构造函数已经实现了。那我就不觉得有什么困难了。

CPng::CPng(string file_path, bool create_canvas = false, int x = 0, int y = 0);
Документация по MQL5: Файловые операции / FileReadArray
Документация по MQL5: Файловые операции / FileReadArray
  • www.mql5.com
FileReadArray - Файловые операции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaliy Kuznetsov #:

起初我很高兴,但现在我却犯难了。我无法通过指示器中的设置从外部加载文件,但却无法在编译文件中加载文件。

尼古拉-塞姆科,如果你有时间,请写下是否可行。如果你有设置透明度和文件选择的例子,可以帮我。

这是 CPng 的新版本,其中有 LoadPngFromFile() 函数。

附加的文件:
Png.mqh  38 kb
 
Nikolai Semko #:
我不明白上传 png 文件有什么困难?

的确......,这并不容易)

Nikolai Semko#:
这是 CPng 的新版本,其中有 LoadPngFromFile() 函数。

谢谢,我会试试的

 
Nikolai Semko #:
我不明白,以 uchar 数组加载 PNG 并将其转换为 Png 类对象有什么困难。 。

我已经知道了外部 PNG、加载、缩放和透明度的工作原理。但是...

在文件中编译 PNG 是否现实?

标准功能...

#resource "\\Files\\123.png"

string nam_img = "::Files\\123.png"

...编译错误

我没有深入研究软件与外部文件协同工作的事实,但如何让整个最终产品成为一个文件?

否则就失去了这一功能的实际意义。我还没有在 MT5 中尝试过。在 MT4 中会出现连接错误。


附注:我认为理论上可以编写一个脚本,将 PNG 转换成代码,然后将其放入 MQH,并将其作为一个容器的一部分进行处理。但我写不出这样的脚本。图片数组对我来说是一片盲目的森林。

 
Vitaliy Kuznetsov #:

外部 PNG 已解决,加载、缩放和透明度都正常。但是...

在文件内编译 PNG 是否现实?

您可以将文件作为数组插入,然后访问该数组。


附上一个示例

附加的文件:
Resurs.mq5  634 kb
 
Vitaliy Kuznetsov #:

在文件内编译 PNG 是否现实?

请开发人员在这里插入 PNG。

我相信他们会同意的。