Tuval harika! - sayfa 85

 
Nikolai Semko #:
Ne yazık ki, MQL4'te bir kaynağı dizi olarak ekleme olanağı yoktur. Ancak diğer her şey çalışıyor.
Elbette, bunu sert tefler aracılığıyla uygulamak mümkündür. Örneğin, bir BMP dosyasına bir PNG görüntüsü ekleyin, yani png'nin başına bir BMP başlığı ekleyin ve png'nin kendisini bir bmp görüntüsü olarak geçirin (yani, böyle bir BMP'yi açarsanız, farklı şeffaflıktaki renkli piksellerden oluşan bir gürültü olacaktır). Ve sonra bu "bmp dosyasını" MQL4'te bir kaynak olarak ekleyin. Bu piyasa için gerekli olabilir, böylece ex4 zaten daha yoğun bir png formatında bir görüntü içerir.
Referans için: png, kalite kaybı olmadan aynı BMP görüntüsünden yaklaşık 10 kat daha küçüktür, ayrıca tam şeffaflığı destekler.
Ex4 dosyasındaki gerçek bmp kaynağı sıkıştırılmış bir biçimde saklanır, ancak büyüklük sırasına göre daha az değildir. Tam olarak kontrol etmek gerekir.

Bu arada, resim png gibi saydamlığa sahip olduğunda MQL4'te alfa kanallı BMP'yi hiç ekleyemedim. Ya görünmüyor ya da derlenmiyor.

Burada bir tartışma vardı https://www.mql5.com/en/forum/157832 Sonuç olarak, yalnızca MT5 için uygundur. Ancak BMP'nin alfa kanalı ile var olması ilginçtir.

PNG ile de çalışmadı... ya da nasıl olduğunu çözemedim.


Tuval ve ölçeklendirme hakkında, Teşekkürler, mq4 üzerinde deneyeceğim.

 
Vitaliy Kuznetsov #:

Bu arada, resim png gibi saydamlığa sahip olduğunda, MQL4'te alfa kanallı BMP'yi hiç ekleyemedim. Ya gösterilmiyor ya da derlenmiyor.

Burada bir tartışma vardı https://www.mql5.com/en/forum/157832 Sonuç olarak, yalnızca MT5 için uygundur. Ancak BMP'lerin alfa kanalı ile var olması ilginçtir.

PNG ile de çalışmadı... ya da nasıl çalıştığını fark etmedi.


Tuval ve ölçeklendirme hakkında, Teşekkürler, mq4 üzerinde deneyeceğim.

MQL4'te yanıp sönme hatası yoktur.
Ekte mql4 sürümü bulunmaktadır.

Dosyalar:
 
Nikolai Semko #:

MQL4'te yanıp sönme hatası yoktur.
Ekte mql4 sürümü bulunmaktadır.

Bu çok uygun. Teşekkür ederim!

 

İlk başta mutluydum ama şimdi afalladım. İndikatördeki ayarlar aracılığıyla dışarıdan bir dosya yükleyemiyorum, ancak derlenmiş dosyanın içinde değil.

Nikolai Semko, zamanınız varsa, lütfen mümkün olup olmadığını yazın. Ve şeffaflık ayarı ve dosya seçimi ile ilgili bir örneğiniz varsa, bana yardımcı olabilirsiniz.

 
Vitaliy Kuznetsov #:

İlk başta mutluydum ama şimdi afalladım. Göstergedeki ayarlar aracılığıyla dışarıdan bir dosya yükleyemiyorum, ancak derlenen dosyanın içinde değil.

Nikolai Semko, eğer zamanınız varsa, mümkünse lütfen yazın. Ve şeffaflık ayarı ve dosya seçimi ile ilgili bir örneğiniz varsa, bana yardımcı olacaksınız.

Anlamıyorum, png'yi uchar dizisi olarak yüklemenin ve ardından Png sınıfı nesnesine beslemenin zorluğu nedir?
Png sınıfına LoadPngFromFile(string file_name) metodunu eklemek hiç de zor değil. Ben sadece kendime böyle bir görev vermedim, bu yüzden uygulamadım. Ama siz kolayca üstesinden gelebilirsiniz.
h ttps://www.mql5.com/ru/docs/files/filereadarray
Png sınıfının, girdi olarak tüm png dosyasını içeren bir uchar[] dizisi alan kurucusuna bakın.

*

Oops, ben aptalım. Bir dosya adı alan ikinci kurucu zaten uygulanmıştır. O zaman herhangi bir zorluk görmüyorum.

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

İlk başta mutluydum ama şimdi afalladım. Göstergedeki ayarlar aracılığıyla dışarıdan bir dosya yükleyemiyorum, ancak derlenen dosyanın içinde değil.

Nikolai Semko, eğer zamanınız varsa, mümkünse lütfen yazın. Şeffaflık ayarı ve dosya seçimi ile ilgili bir örneğiniz varsa bana yardımcı olabilirsiniz.

İşte LoadPngFromFile() işlevine sahip yeni bir CPng sürümü.

Dosyalar:
Png.mqh  38 kb
 
Nikolai Semko #:
Bir png yüklemenin zorluğunu anlamıyorum

Gerçekten de..., her zaman kolay değildir)

Nikolai Semko #:
işte LoadPngFromFile() işlevine sahip yeni bir CPng sürümü.

Teşekkürler, deneyeceğim

 
Nikolai Semko #:
Anlamadım, png'yi uchar dizisi olarak yüklemenin ve ardından Png sınıfının nesnesine beslemenin zorluğu nedir?

Harici PNG'leri, yükleme, ölçekleme, şeffaflık işlerini çözdüm. Ama...

Bir dosyanın içinde bir PNG derlemek gerçekçi mi?

Standart işlevsellik ...

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

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

... derleme hatası veriyor

Yazılımın harici bir dosya ile çalıştığı gerçeğine girmedim, ancak tüm nihai ürünün tek bir dosya olması nasıl sağlanır?

Aksi takdirde böyle bir özelliğin pratik anlamı kaybolur. MT5'te denemedim. MT4'te bir bağlantı hatası var.


Not: Teorik olarak PNG'yi koda dönüştürecek bir komut dosyası yazmanın mümkün olduğunu varsayıyorum ve bunu örneğin MQH'ye koyacağız ve bunlarla tek bir kabın parçası olarak çalışacağız. Ama ben böyle bir betik yazamam. Resim dizileri benim için kör bir orman.

 
Vitaliy Kuznetsov #:

Harici PNG'ler çözüldü, yükleme, ölçekleme, şeffaflık çalışıyor. Ama...

Bir PNG'yi bir dosya içinde derlemek gerçekçi midir?

Dosyayı bir dizi olarak ekleyebilir ve daha sonra bu diziye erişebilirsiniz.


Ekli bir örnek

Dosyalar:
Resurs.mq5  634 kb
 
Vitaliy Kuznetsov #:

PNG'yi bir dosya içinde derlemek gerçekçi mi?

Geliştiricilerden buraya PNG eklemesini isteyin.

Eminim kabul edeceklerdir.

Neden: