Uma imagem digital é a representação de uma imagem bidimensional usando números binários codificados de modo a permitir seu armazenamento, transferência, impressão ou reprodução, e seu processamento por meios eletrônicos. Há dois tipos fundamentais de imagem digital. Uma é do tipo rastreio (raster) e outra do tipo vetorial. Uma imagem digital do tipo raster, ou bitmap, ou ainda matricial, é aquela que em algum momento apresenta uma correspondência bit-a-bit entre os pontos da imagem raster e os pontos da imagem reproduzida na tela de um monitor.
A imagem vetorial não é reproduzida necessariamente por aproximação de pontos, antes era destinada a ser reproduzida por plotters de traços que reproduziam a imagem por deslocamento de canetas-tinteiro.
Tipicamente, as imagens raster são imagens fotográficas, e as imagens vetoriais são desenhos técnicos de engenharia. Os quadrinhos ilustrados se assemelham em qualidade a imagens raster, mas são impressos em plotters que passaram a imprimir à maneira das impressoras comuns por jato de tinta.
CStatic
Fornece a funcionalidade de um controle estático do Windows.
HBITMAP
Um identificador para um bitmap. Para exibir imagens do tipo GIF e JPG use a classe CImage.
Visual Studio
Para usar o Picture Control siga os seguintes passos:
- Crie uma novo projeto MFC – Dialog Based.
- Arraste para o dialogo um componente Static Text e um Picture Control.
- Mude o ID do componente Picture Control para IDC_IMAGEM.
- Mude a propriedade Type do componente Picture Control para Bitmap.
- Use a figura abaixo para montar seu design:
- Efetue o download da imagem em: dowload da imagem.
- Abra a imagem no Paint Brush do Windows e a salve como tipo BMP em um diretório da sua escolha.
- Preencha seu código gerado automaticamente com os trechos do código abaixo.
- Lembre-se de trocar o diretório da imagem no código pelo seu diretório escolhido, em C++ as barras de diretório precisam ser invertidas.
Exemplo:
Neste exemplo usamos a mensagem de inicialização do Windows e um componente Picture Control para exibir uma imagem de Bitmap.
C++
// Código gerado autimaticamente
// ImagemcppDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Imagemcpp.h"
#include "ImagemcppDlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
CImagemcppDlg::CImagemcppDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CImagemcppDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CImagemcppDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CImagemcppDlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
END_MESSAGE_MAP()
BOOL CImagemcppDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
// Desenvolvimento Aberto
// Este bloco exibe uma imagem no formato BMP
CStatic * foto;
CString imagem;
foto = (CStatic *) GetDlgItem(IDC_IMAGEM);
imagem = L"C:/Desenvolvimento Aberto/images.bmp";
HBITMAP pic = (HBITMAP)LoadImage(NULL, imagem, IMAGE_BITMAP, 275, 183, LR_LOADFROMFILE);
foto->SetBitmap(pic);
return TRUE;
}
void CImagemcppDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this);
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
HCURSOR CImagemcppDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}



