캔버스 멋지다! - 페이지 85

 
Nikolai Semko #:
안타깝게도 MQL4에서는 리소스를 배열로 첨부할 수 없습니다. 하지만 다른 모든 것은 작동합니다.
물론 하드 탬버린을 통해 구현할 수도 있습니다. 예를 들어 PNG 이미지를 BMP 파일에 삽입하고, 즉 PNG의 시작 부분에 BMP 헤더를 추가하고, PNG 자체를 bmp 이미지로 전달합니다(즉, 이러한 BMP를 열면 투명도가 다른 컬러 픽셀의 노이즈가 발생함). 그런 다음 이 "bmp 파일"을 MQL4의 리소스로 첨부합니다. 이것은 시장에 필요할 수 있으므로 ex4에는 이미 더 밀도가 높은 PNG 형식의 이미지가 포함되어 있습니다.
참고: png는 동일한 BMP 이미지보다 품질 손실 없이 약 10배 더 작으며 전체 투명도를 지원합니다.
ex4 파일의 실제 bmp 리소스는 압축된 형식으로 저장되지만 그보다 훨씬 적은 양은 아닙니다. 정확히 확인할 필요가 있습니다.

그건 그렇고, 이미지가 png와 같은 투명도를 가질 때 MQL4에서 알파 채널이있는 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에는 깜박이는 버그가 없습니다.
첨부된 것은 mql4 버전입니다.

 
Nikolai Semko #:


첨부된 것은 mql4 버전입니다.

잘 맞습니다. 고마워요!

 

처음에는 기뻤지만 지금은 당황스럽습니다. 표시기의 설정을 통해 외부에서 파일을로드 할 수 없지만 컴파일 된 파일 내부에서는로드 할 수 없습니다.

니콜라이 셈코, 시간이 있으면 가능한지 적어주세요. 그리고 투명도 설정 및 파일 선택에 대한 예제가 있으면 저를 도울 수 있습니다.

 
Vitaliy Kuznetsov #:

처음에는 기뻤지만 지금은 당황스럽습니다. 인디케이터의 설정을 통해 외부에서 파일을 로드할 수 있지만 컴파일된 파일 내부에서는 로드할 수 없습니다.

니콜라이 셈코, 시간이 있으면 가능한지 적어주세요. 그리고 투명도 설정 및 파일 선택에 대한 예제가 있으면 저를 도와 주실 것입니다.

PNG를 uchar 배열로로드 한 다음 Png 클래스 객체에 공급하는 데 어려움이 무엇인지 이해하지 못합니다.
LoadPngFromFile(문자열 file_name) 메서드를 Png 클래스에 추가하는 것은 전혀 어렵지 않습니다. 저는 그런 작업을 직접 설정하지 않았기 때문에 구현하지 않았습니다. 하지만 쉽게 대처할 수 있습니다.
h ttps://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 #:

처음에는 기뻤지만 지금은 당황스럽습니다. 인디케이터의 설정을 통해 외부에서 파일을 로드할 수 있지만 컴파일된 파일 내부에서는 로드할 수 없습니다.

니콜라이 셈코, 시간이 있으면 가능한지 적어주세요. 그리고 투명도 설정 및 파일 선택에 대한 예제가 있으면 저를 도울 수 있습니다.

다음은 LoadPngFromFile() 함수가 있는 새 버전의 CPng입니다.

파일:
Png.mqh  38 kb
 
Nikolai Semko #:
PNG 업로드가 왜 이렇게 어려운지 모르겠어요.

사실..., 항상 쉬운 것은 아닙니다)

니콜라이 셈코 #:
여기에 LoadPngFromFile() 함수가 있는 새로운 버전의 CPng가 있습니다.

고마워, 나는 그것을 시도 할 것이다

 
Nikolai Semko #:
PNG를 uchar 배열로로드 한 다음 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를 여기에 삽입해 달라고 요청하세요.

분명 동의할 것입니다.

사유: