Tiago Vital Posted February 27, 2018 at 06:25 PM Report #609525 Posted February 27, 2018 at 06:25 PM Boa tarde, será possivel carregar imagens no pascal? Obrigado!
nunopicado Posted February 27, 2018 at 10:14 PM Report #609526 Posted February 27, 2018 at 10:14 PM A resposta curta é SIM. A resposta longa é: Sim, mas a forma de fazer depende de outros factores. Depende que estás a falar em GUI ou consola, depende do tipo de imagem, etc. 1 Report "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
BHAMF Posted February 27, 2018 at 11:03 PM Report #609528 Posted February 27, 2018 at 11:03 PM Tem como carregar imagens numa consola? Brenio Hallison A.M. Filho
nunopicado Posted February 27, 2018 at 11:44 PM Report #609530 Posted February 27, 2018 at 11:44 PM 40 minutos atrás, BHAMF disse: Tem como carregar imagens numa consola? Sim, tem. No entanto, confesso que já não me lembro de como o fazer. A última vez que o fiz ainda foi no velhinho Turbo Pascal 6.0, há provavelmente mais de 20 anos... 😄 Mas é possível. Na altura fiz um visualizador de GIFs. 1 Report "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
thoga31 Posted February 28, 2018 at 11:11 PM Report #609540 Posted February 28, 2018 at 11:11 PM Só para esclecer um pormenor, as imagens não são carregadas directamente na consola, isso não é possível. O que acontece no Pascal mais "tradicional" é abrir-se uma janela destinada especificamente ao desenho gráfico. No tempo do Turbo Pascal, isto era conseguido com a unit graph. Contudo, esta unit é bastante velha e não se adapta propriamente aos dias actuais. Apesar de ainda conseguirmos fazer algumas brincadeiras com ela, as grandes potencialidades que ela oferecia dependiam de características do Windows que hoje já não se encontram disponíveis por motivos de segurança. Actualmente, existem substitutos desta unit relativamente capazes. Contudo, com o migrar para o mundo GUI, houve uma forte aposta nos componentes associados, sendo o "mundo consola" relativamente esquecido uma vez que é extremamente arcaico. Ainda é possível fazer umas brincadeiras com imagens em consola, mas são verdadeiros desenterros de um passado já meio esquecido. Eu próprio não me lembro como tal pode ser feito - apenas sei fazer o contrário (fazer um screenshot a uma janela gráfica de um programa CLI e guardar em *.bmp). O Pascal está bastante evoluído, sendo para isto mais usado o componente TImage disponibilizado no Delphi e no Lazarus. Mas esse é um componente GUI. Se eu encontrar forma de fazer o pretendido, partilho aqui. 😉 Cumprimentos. 1 Report Knowledge is free!
Popular Post thoga31 Posted March 1, 2018 at 12:09 AM Popular Post Report #609541 Posted March 1, 2018 at 12:09 AM (edited) Ok, lembrei-me de uma forma de carregar a imagem. Faço notar, no entanto, que este não é um método eficiente! Essencialmente recorri a umas units muito úteis da FCL - um conjunto de units do Free Pascal que não fazem parte do "pacote de base" (RTL) - e à unit wingraph, uma melhoria da velhinha graph dos tempos do Turbo Pascal. Esta última é freeware e pode ser encontrada aqui. program CLIImage; uses fpreadbmp, fpimage, // Free Pascal FCL wingraph; // http://math.ubbcluj.ro/~sberinde/wingraph/ var image : TFPCustomImage; // Stream onde fica carregada a imagem reader : TFPCustomImageReader; // Leitor de imagens BMP driver, mode : smallint; // Para a janela gerada pelo 'wingraph' x, y : integer; // Coordenadas begin image := TFPMemoryImage.Create(500, 500); // Imagem 500x500 reader := TFPReaderBMP.Create; image.LoadFromFile('image.bmp', reader); // Leitura do ficheiro de imagem 'imagem.bmp' reader.Free; DetectGraph(driver, mode); // Inicialização da janela do 'wingraph' mode := m800x600; // Janela 800x600 será suficiente InitGraph(driver, mode, ''); // Gera a janela { Coloca a imagem na janela - é preciso converter o código RGB numa Color entendida pelo 'wingraph' } for y := 0 to image.Height-1 do for x := 0 to image.Width-1 do PutPixel(x, y, GetRGBColor(image.Colors[x,y].Red, image.Colors[x,y].Green, image.Colors[x,y].Blue)); readln; // Pausa do programa CloseGraph; // Fecha a janela do 'wingraph' image.Free; // Liberta recursos da imagem - OBRIGATÓRIO! end. Ainda assim, continuo a sugerir que, para este tipo de fins, se usem aplicações GUI em vez de CLI uma vez que isto é já uma arte arcaica e que, mais dia menos dia, deixará de ser praticável. Cumprimentos. Edited March 1, 2018 at 12:12 AM by thoga31 Syntax highlight 3 Report Knowledge is free!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now