Clipper On Line • Ver Tópico - Ícone multiresolução

Ícone multiresolução

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Ícone multiresolução

Mensagempor JoséQuintas » 23 Fev 2018 17:22

Até agora não entendi.
Pra XP 800 X 600, os ícones não estão bom demais?
Estou achando perfeitos demais pra baixa resolução.

XP 800 x 600 em máquina virtual W10.

xpvirtual.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ícone multiresolução

Mensagempor JoséQuintas » 23 Fev 2018 17:28

No tamanho máximo do monitor normal, parcial.

maxres.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ícone multiresolução

Mensagempor JoséQuintas » 26 Fev 2018 07:57

O único problema talvez seja o tamanho.
O EXE quase dobrou de tamanho.

18/02/2018  09:04           133.297 cmdFicha.ico
21/02/2018  14:52           134.861 icophone.ico
18/02/2018  08:58           152.238 icokey.ico
22/02/2018  20:13           161.862 multicopy.ico
17/02/2018  21:06           165.382 icomoney.ico
17/02/2018  21:05           170.736 oldicotruck.ico
21/02/2018  13:01           180.346 icosearch.ico
18/02/2018  08:52           190.952 icomailcnpj.ico
09/01/2017  21:46           198.178 jpa2017.bmp
21/02/2018  13:07           210.582 icopdf.ico
17/02/2018  21:15           251.680 icobarcode.ico
18/02/2018  08:57           287.350 icofilter.ico
17/02/2018  21:04           372.526 icotruck.ico
18/02/2018  09:06           379.926 icocoin.ico
21/02/2018  13:40           379.926 icocashregister.ico
17/02/2018  21:04           507.062 icoliqtruck.ico
17/07/2017  22:38           590.454 josequintas2017.bmp
21/02/2018  13:36           744.934 icoshopcart.ico
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ícone multiresolução

Mensagempor asimoes » 26 Fev 2018 08:36

Quintas,

Prefiro deixar os icones, jpg e bmps fora do exe, sei que tem o custo de ficar mais lento a exbição.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Ícone multiresolução

Mensagempor JoséQuintas » 05 Abr 2018 11:36

asimoes escreveu:Prefiro deixar os icones, jpg e bmps fora do exe, sei que tem o custo de ficar mais lento a exbição.


Não vou trocar, mas pensei numa quarta opção:

1 - Ícones em EXE, em resource
2 - ícones/arquivos em EXE/PRG, em resource Harbour
3 - Ícones em disco
4 - Ícones em DLL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ícone multiresolução

Mensagempor JoséQuintas » 05 Abr 2018 11:43

E continuo mexendo nos ícones.
Tá um carnaval bonito !!!

icones.png


A única coisa ruim, é que não sei como criar novos ícones com qualidade, qualque mexida estraga.
Por exemplo, o símbolo da SEFAZ.
Precisava dele normal, vermelho, escrito EMITE, CANCELA e CARTA, já deve saber porque.

E pra uso desde 16x16 até 128x128. Acho que ainda é cedo pra 256x256.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ícone multiresolução

Mensagempor asimoes » 05 Abr 2018 11:43

Icones em Dll é interessante, como vai fazer para exibir ?
Ou melhor, como vai gerar a dll com os icones e depois exibir
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Ícone multiresolução

Mensagempor JoséQuintas » 05 Abr 2018 11:50

Depende da LIB gráfica, se ela deixou o recurso disponível.

A função do Windows de carregar imagem aceita indicar de qual arquivo será carregado o resource.
E aceita indicar redimensionamento também, e aceita multi-resolução.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ícone multiresolução

Mensagempor JoséQuintas » 05 Abr 2018 11:56

Estou insistindo nesse multi-resolução porque é muuuuuito interessante.

Num grid/browse, precisamos ícones 16x16.
Já nos buttons, é interessante 32x32.
Em 4k, já pode ser 64x64 ou maior.
Então... com o multi-resolução, fica resolvido pra qualquer situação, quanto mais qualidade no monitor/espaço disponível melhor.
É o fim de ficar procurando ícones diferentes pra resoluções diferentes.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ícone multiresolução

Mensagempor asimoes » 05 Abr 2018 13:38

Voltando ao assunto.

Quem quiser testar.

Código para gerar a Dll de resources

Tem um exemplo na minigui, aproveitei de lá para gerar a dll

Na minigui fica na pasta \MiniGUI\SAMPLES\Advanced\Resources_DLL
Anexos
h-DllIcon.zip
Código para gerar a Dll de resource
(257.18 KiB) Baixado 79 vezes
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Ícone multiresolução

Mensagempor JoséQuintas » 05 Abr 2018 15:33

Deu certo direto, só com RC.

hbmk2 jpa.rc -oteste -hbdynvm


resdll.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ícone multiresolução

Mensagempor asimoes » 05 Abr 2018 16:00

Agora só falta saber como carregar o resource da dll
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Ícone multiresolução

Mensagempor JoséQuintas » 05 Abr 2018 17:06

Pelo menos a WVG usa essa padrão do Windows.
E no Harbour 3.4 está com os parâmetros que definem um tamanho de destino, pra redimensionar a imagem.
Foi isso que usei no meu button pra redimensionar.
Como dá pra ver, o recurso no Windows existe, vai depender da LIB usar ou não esses recursos.

loadimage.png


https://msdn.microsoft.com/pt-br/library/windows/desktop/ms648045(v=vs.85).aspx
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ícone multiresolução

Mensagempor JoséQuintas » 06 Abr 2018 19:30

A título de curiosidade, o que acabei de usar pra ícones, sem ser o pushbutton.

METHOD wvgtstControl:SetImage( lResize )

   LOCAL aWindowRect := {}, nWidth, nHeight

   hb_Default( @lResize, .F. )
   IF ::cImage != NIL .AND. ( ::nIconBitmap == WIN_IMAGE_ICON .OR. ::nIconBitmap == WIN_IMAGE_BITMAP )
      IF lResize
         wapi_GetWindowRect( ::hWnd, @aWindowRect )
         nWidth  := Int( ( aWindowRect[ 3 ] - aWindowRect[ 1 ] ) )
         nHeight := Int( ( aWindowRect[ 4 ] - aWindowRect[ 2 ] ) )
      ENDIF
      // BM_SETIMAGE on button, STM_SETIMAGE em outros
      ::SendMessage( STM_SETIMAGE, ::nIconBitmap,   wvg_LoadImage( ::cImage, 1, ::nIconBitmap, nWidth, nHeight ) )
   ENDIF

   RETURN NIL


E a wvg_LoadImage() que no Harbour 3.4 passou a ser apenas uma chamada à API.

/* https://msdn.microsoft.com/library/ms648045
   Windows 2000 and upper, wapi_LoadImage() can resize image

   nSource: 0 ResourceIdByNumber
   nSource: 1 ResourceIdByName
   nSource: 2 ImageFromDiskFile */
FUNCTION wvg_LoadImage( ncImage, nSource, nBmpOrIcon, nWidth, nHeight )

   hb_defaultValue( @nBmpOrIcon, WIN_IMAGE_BITMAP )

   RETURN iif( hb_defaultValue( nSource, 0 ) == 2, ;
      wapi_LoadImage( , ncImage, nBmpOrIcon, nWidth, nHeight, WIN_LR_LOADFROMFILE + WIN_LR_DEFAULTSIZE ), ;
      wapi_LoadImage( wapi_GetModuleHandle(), ncImage, nBmpOrIcon, nWidth, nHeight, WIN_LR_DEFAULTSIZE ) )



Dependendo de como a LIB trata a imagem, poderia ser usada diretamente a API do Windows.
Como dá pra ver nessas rotinas, a WVG não faz nada, apenas usa as rotinas do Windows.
E isso que gosto na WVG: é API Windows em fonte PRG. Não é recurso da WVG, é apenas API Windows disponível pra uso, sem ter que entender de linguagem C.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ícone multiresolução

Mensagempor JoséQuintas » 06 Abr 2018 19:32

Eu dei risada agora da minha própria anotação:

 // BM_SETIMAGE on button, STM_SETIMAGE em outros


tá metade em inglês e metade em português kkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 17 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro