キャンバスがカッコいい! - ページ 85

 
Nikolai Semko #:
残念ながら、MQL4ではリソースを配列としてアタッチすることはできない。しかし、それ以外はすべて機能する。
もちろん、ハードタンバリンで実装することは可能だ。例えば、PNG画像をBMPファイルに挿入する。つまり、pngの先頭にBMPヘッダーを追加し、png自体をbmp画像として渡す(つまり、そのようなBMPを開くと、透明度の異なるカラーピクセルのノイズが発生する)。そして、この「bmpファイル」をMQL4のリソースとして添付する。これは市場にとって必要なことで、ex4にはより高密度なpng形式の画像がすでに含まれている。
参考までに:pngは同じBMP画像より約10倍小さく、画質も損なわず、さらに完全な透明度をサポートしています。
ex4ファイル内の真のbmpリソースは、コンパクト化されたフォーマットで保存されますが、一桁少ないわけではありません。正確な確認が必要である。

ところで、MQL4でpngのような透明度のある画像にアルファチャンネル付きのBMPを挿入できたことがない。表示されないか、コンパイルされません。

https://www.mql5.com/en/forum/157832 結果的にMT5にしか適していません。しかし、アルファチャンネル付きのBMPが存在するのは興味深い。

PNGではうまくいかなかった。


キャンバスとスケーリングの件、ありがとうございます。

 
Vitaliy Kuznetsov #:

ところで、MQL4でpngのような透明度のある画像にアルファチャンネル付きのBMPを挿入できたことがありません。表示されないか、コンパイルされません。

https://www.mql5.com/en/forum/157832 結果、MT5にしか適していません。しかし、アルファチャンネル付きのBMPが存在するのは興味深い。

PNGでもうまくいかなかった...あるいはその方法に気づかなかった。


キャンバスとスケーリングについて、ありがとう。

MQL4では点滅バグはありません。
mql4バージョンを添付します。

ファイル:
 
Nikolai Semko #:

MQL4には点滅のバグはない。
添付はMQL4バージョン。

ぴったりです。ありがとう!

 

最初は嬉しかったのですが、今は困っています。インジケータの設定を通して外部からファイルを読み込むことはできるのですが、コンパイルされたファイルの中にファイルを読み込むことができないのです。

ニコライ・セムコ さん、お時間があれば、可能かどうか書いてください。また、透明度の設定とファイル選択の例があれば教えてください。

 
Vitaliy Kuznetsov #:

最初は嬉しかったのですが、今は困っています。インジケーターの設定を通して外部からファイルを読み込むことはできるのですが、コンパイルされたファイルの中にあるファイルを読み込むことができないのです。

ニコライ・セムコ さん、お時間があれば、可能かどうか書いてください。また、透明度の設定とファイル選択の例があれば教えてください。

pngをuchar配列として読み込み、それをPngクラスのオブジェクトに与えることの何が難しいのか理解できません。
PngクラスにLoadPngFromFile(string file_name)メソッドを追加するのは全然難しくない。ただ、私はそのような仕事を自分に課していなかったので、実装しなかっただけだ。でも、簡単に対応できる。
https://www.mql5.com/ru/docs/files/filereadarray
Pngクラスのコンストラクタを見てください。このコンストラクタは、pngファイル全体を含む配列uchar[]を入力として受け取ります。

*

おっと、私はバカだ。ファイル名を受け取る2番目のコンストラクタはすでに実装されている。それなら、まったく難しいことは見当たらない。

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 #:

最初は嬉しかったのですが、今は困っています。インジケーターの設定を通して外部からファイルを読み込むことはできるのですが、コンパイルされたファイルの中にファイルを読み込むことはできないのです。

ニコライ・セムコ さん、お時間があれば、可能かどうか書いてください。また、透明度の設定とファイル選択の例があれば教えてください。

ここに、LoadPngFromFile()関数を持つCPngの新しいバージョンがあります。

ファイル:
Png.mqh  38 kb
 
Nikolai Semko #:
pngをアップロードすることの難しさが理解できない。

確かに...、いつも簡単ではない)

Nikolai Semko#:
こちらがCPngの新しいバージョンで、LoadPngFromFile()関数があります。

ありがとう。

 
Nikolai Semko #:
pngをuchar配列として読み込み、それをPngクラスのオブジェクトに育成することの何が難しいのか理解できませんでした。 。

外部PNGの読み込み、拡大縮小、透過はわかりました。しかし

ファイル内でPNGをコンパイルするのは現実的ですか?

標準機能では.

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

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

...コンパイルエラーが出る

ソフトが外部ファイルと連動することまでは踏み込まなかったが、最終的に全体を一つのファイルにするにはどうすればいいのだろうか?

そうでなければ、このような機能の実用的な意味が失われてしまう。MT5では試していない。MT4では接続エラーが発生します。


P.S. 理論的には、PNGをコードに変換するスクリプトを書くことは可能で、それを例えばMQHに入れて、1つのコンテナの一部として扱うことができると思います。しかし、私にはそんなスクリプトは書けない。ピクチャ・アレイは私にとって盲目の森なのだ。

 
Vitaliy Kuznetsov #:

外部PNGが整理され、読み込み、拡大縮小、透過がうまくいった。しかし

ファイル内でPNGをコンパイルするのは現実的ですか?

ファイルを配列として挿入し、この配列にアクセスすることができます。


例を添付します。

ファイル:
Resurs.mq5  634 kb
 
Vitaliy Kuznetsov #:

ファイル内でPNGをコンパイルするのは現実的なのか?

開発者にここにPNGを挿入するように頼んでみてください。

きっと同意してくれるはずだ。

理由: