CSCH, uma ferramenta para apoio do desenvolvimento de aulas presenciais e videoaulas
8 respostas
javaswing
D
davidbuzatto
Caros, boa noite. Tenho desenvolvido uma ferramenta já há algum tempo, para me auxiliar na criação de videoaulas e na condução de aulas presenciais. Como principal diferencial, a CSCH permite que se “desenhe em cima da tela” do sistema operacional, caso desejado, além de viabilizar a criação de diversas páginas de desenho em cada projeto.
No vídeo disponível no link https://www.youtube.com/watch?v=j7LvGzu3Vhs eu explico, sem muitos rodeios e edição, como se usar a ferramenta. O bug de não criar novas páginas de desenho quando a ferramenta de movimento está selecionada, que percebi na gravação do vídeo, foi resolvido e os links abaixo são da versão 1.5.1, que já contém a correção.
Quem tiver interesse, de uma olhada. Críticas e sugestões são sempre bem vindas. Já há muito código para ser refatorado, mas pretendo terminar de implementar todas as funcionalidades que quero para depois começar algumas iterações de refatoração.
Hummm. No Windows não há problema, na vdd, nem fiz pensando em Linux. O fundo “transparente” é um JFrame não opaco com uma pintura usando a cor preta com alpha em 254, pq se usar uma cor totalmente transparente, não funciona. O que deve estar acontecendo é que após sucessivos repaints, esse 1 do alpha que está faltando está acumulando.
T
Trapezus
Prezado David,
Primeiramente, adorei a ideia da ferramenta.
A partir de seu código-fonte, atualizei a biblioteca JTS da versão 1.13 para a 1.18.1.
Também coloquei em comentário a linha abaixo, porque, deixava a área de trabalho totalmente preta onde deveria estar a transparência. // setSize( Toolkit.getDefaultToolkit().getScreenSize() );
Tenho observado também que, ao aplicar o Pencil ou Brush a tela fica piscando enquanto estou desenhando e ao aplicar qualquer dos itens de linha até estrela ocorre um deslocamento sobreposto (duplicidade) dos itens gerando várias linhas, quadrados e círculos.
Um outro tipo de deslocamento ocorre quando arrasto os itens com o Move como desmonstro no pentágono.
Observação: SO : Fedora 33 JDK : OpenJDK 11.0.10 Versão Baixada : v1.5.1
Fiz uma alteração no btnPrintScreen.
Da forma que estava, a tela capturada no linux ficava totalmente preta.
Na primeira sugestão com a classe Robot e Image a tela capturada fica com o canal alfa em preto.
Na segunda sugestão com a classe Image e BufferedImage a tela capturada fica com o canal alfa transparente.
publicvoidsalvarImagemPNG(){dConfig.setProcessEventsMainWindow(false);try{JFileChooserjfc=newJFileChooser();jfc.setCurrentDirectory(dConfig.getDefaultDir());jfc.setDialogTitle("Save Print Screen");jfc.setMultiSelectionEnabled(false);jfc.setFileFilter(newFileNameExtensionFilter("Portable Network Graphics","png"));if(jfc.showSaveDialog(this)==JFileChooser.APPROVE_OPTION){FilefileName=jfc.getSelectedFile();if(!fileName.getName().endsWith(".png")){fileName=newFile(fileName.getAbsolutePath()+".png");}dConfig.setDefaultDir(fileName.getParentFile());// Captura a tela com fundo preto// Robot robot = new Robot();// java.awt.Image image = robot.createScreenCapture(new java.awt.Rectangle(getWidth(), getHeight()));// paint(image.getGraphics());// Captura a tela com fundo quadriculado (canal alfa trasnparente)java.awt.Imageimage=newBufferedImage(getSize().width,getSize().height,BufferedImage.TYPE_4BYTE_ABGR);paint(image.getGraphics());ImageIO.write((RenderedImage)image,"png",fileName);}}catch(IOExceptionex){ex.printStackTrace();}dConfig.setProcessEventsMainWindow(true);}
R
rodriguesabner
enviou atualização?
D
davidbuzatto
Olá, amanhã vejo o que vc fez e atualizo. Obrigado
D
davidbuzatto
Te respondendo direito agora.
A atualização da JTS acho que deve ser irrelevante, pq dela eu uso somente a simplificação geométrica para recalcular os pontos dos desenhos de caminhos (lápis, pincel e borracha) aumentando a “suavidade”.
Em relação ao print, preciso dar uma olhada, pq eu quero o fundo tbm quando tem alpha. Afinal, se tem fundo transparente, provavelmente o usuário está desenhando “em cima” da tela.
Há muitas inconsistências em relação aos kits de janelamento do Windows e dos ambientes do Linux e a ferramenta foi feita pra Windows, então eu não me preocupo com isso, mas vou conferir tudo. O público alvo (professores), em sua massiva maioria usa Windows.
Abraço!
D
davidbuzatto
Em relação ao flickering e a duplicidade dos desenhos, isso de novo é inconsistência no Linux. O painel onde ocorrem as operações de desenhos e suas ramificações está com double buffering ativado. Em relação ao printscreen, vou manter como está, pois no Windows funciona da forma que foi pensado. Das suas modificações, só acatei a atualização da JTS que parece ter algumas correções/melhorias na suavização geométrica.