Renderizando imagens em Java

2 respostas
DorPho

Pessoal...

Tenho o seguinte código em C++ e quero fazer a mesma implementação em JAVA só que não sei as classes e métodos que corresponder a estes abaixo, por favor, gostaria da ajuda de alguem que ja teve a mesma experiência!

código C++:

void CNode::Render(HDC surface)
{
 
  //create a brush and pen of the correct color
  int red   = (int)(m_dWeights[0] * 255);
  int green = (int)(m_dWeights[1] * 255);
  int blue  = (int)(m_dWeights[2] * 255);

  HBRUSH brush = CreateSolidBrush(RGB(red, green, blue));
  HPEN   pen   = CreatePen(PS_SOLID, 1, RGB(red, green, blue));

  HBRUSH OldBrush = (HBRUSH)SelectObject(surface, brush);
  HPEN   OldPen   = (HPEN)SelectObject(surface, pen);

  Rectangle(surface, m_iLeft, m_iTop, m_iRight, m_iBottom);

  SelectObject(surface, OldBrush);
  SelectObject(surface, OldPen);

  DeleteObject(brush);
  DeleteObject(pen);

}

...

Não sei o objeto em JAVA correspondente à: HDC, HBRUSH, HPEN.

Um abraço a todos!

2 Respostas

T

É bem mais complicado que parece: o correto é você aprender o Java2D, já que Java não acessa diretamente (de forma rápida) as APIs do Windows, tal como você fez. Não tente usar JNA (ou JNI) para resolver seu problema, porque o JNA irá deixar seu programa muito lento em comparação ao programa equivalente em C++. Se você reimplementar esse seu código em Java2D, então ele terá velocidade aceitável (embora não igual a chamar diretamente a GDI, como você fez).

DorPho

thingol meu amigo, Muito obrigado pela ajuda! mas algumas dúvidas ainda ficaram… sabendo agora que irei trabalhar com JAVA2D… eu não sei quais métodos ou objetos equivalentes em JAVA corresponde a estes, pois não sei a função de cada em C++ entendeu? este trecho de código não foi implementado por mim!

Um abraço! Obrigado novamente!

Criado 20 de maio de 2009
Ultima resposta 20 de mai. de 2009
Respostas 2
Participantes 2