Michal Kyžňanský / 19. 10. 2005, 00:00
V tomto dieli si ukážeme posledné triky, ktoré nám ponúka grafické plátno. Ukážeme si, ako nahrávať obrázky a zmenšovať/zväčšovať ich. Vytvoríme si jednoduchý, ale zaujímavý filter na rozostrenie obrázkov.
Image1->Picture->LoadFromFile("C:\\obrázok.bmp");
Ak chceme obrázok zmenšiť/zväčšiť je nutné pridať znamienko * alebo /. Teda, či chceme zmenšiť či zväčšiť obsah pixelov.
void kopirovanie(void) {
TCanvas *f, *g;
f=Image1->Canvas;
g=Image2->Canvas;
int x, y;
for (y=0; yHeight; y++){ for (x=0; x Width; x++){ g->Pixels[x][y]=f->Pixels[x][y]; } } }
Zväčšenie:
g->Pixels[x][y]=f->Pixels[x*2][y*2];
g->Pixels[x][y]=f->Pixels[x/2][y/2];
g->Pixels[x][y]=f->Pixels[x+random(8)][y+random(8)];
//-------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
//-------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{ Image1->Picture->LoadFromFile("C:\\joconde.bmp"); }
//--------------------------------------------------------------------
TCanvas *f, *g;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
f=Image1->Canvas; g=Image2->Canvas;
g->FillRect(Image2->ClientRect);
int x, y;
for (y=0; yHeight/2; y++){ for (x=0; x Width/2; x++){ g->Pixels[x][y]=f->Pixels[x*2][y*2]; } } }
//--------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
f=Image1->Canvas;
g=Image2->Canvas;
int x, y;
for (y=0; yHeight; y++){
for (x=0; xWidth; x++){
g->Pixels[x][y]=f->Pixels[x+random(8)][y+random(8)];
}
}
}
//-------------------------------------------------------------------
Copyright © 2002 - 2013 inet.sk, s. r. o. | Všetky práva vyhradené | Neprešlo jazykovou úpravou | ISSN 1336-1899
Využívame kvalitný webhosting za rozumnú cenu od Inet.sk