void TMDIChild:: Scale ( )
{
Byte * tptr,* dptr;
Graphics:: TBitmap * AttendBitmap= new Graphics:: TBitmap ( ) ;
AttendBitmap= OriginalBitmap;
AttendBitmap- > PixelFormat= pf24bit;
AttendBitmap- > Width= OriginalBitmap- > Width;
AttendBitmap- > Height= OriginalBitmap- > Height;
Graphics:: TBitmap * TempBitmap= new Graphics:: TBitmap ( ) ;
TempBitmap- > Assign( OriginalBitmap) ;
TempBitmap- > PixelFormat= pf24bit;
int down,right;
int w,h,newW,newH;
double dX,dY,x,y;
double scalar; // Zoom scalar
int i,j;
int ix,iy; // integer value of (x,y)
float fx,fy; // float value of (x,y)
unsigned char clr,
clrR,clrG,clrB,
nclr1,nclr2,nclr3,nclr4; // color of neighbor 4 pixel
w = AttendBitmap- > Width;
h = AttendBitmap- > Height;
scalar = StrToFloat( ScaDlg- > Edit1- > Text) ;
newW= ( int ) ( ( double ) w* scalar) ;
newH= ( int ) ( ( double ) h* scalar) ;
TempBitmap- > Width= newW;
TempBitmap- > Height= newH;
/* Caculate the step size of movement */
dX = ( double ) w/ ( double ) newW;
dY = ( double ) h/ ( double ) newH;
for ( j = 0 ; j < newH ; j++ )
{
y = dY* ( double ) j;
iy = ( int ) y;
fy = y - ( float ) iy;
down= iy+ 1 ;
if ( down== h)
down= 0 ;
tptr= ( Byte* ) AttendBitmap- > ScanLine[ iy] ;
dptr= ( Byte* ) AttendBitmap- > ScanLine[ down] ;
for ( i = 0 ; i < newW; i++ )
{
x = dX* ( double ) i;
ix = ( int ) x;
fx = x - ( float ) ix;
right= ix+ 1 ;
if ( right== w)
right= 0 ;
nclr1= tptr[ 3 * ix+ 2 ] ;
nclr2= tptr[ 3 * right+ 2 ] ;
nclr3= dptr[ 3 * ix+ 2 ] ;
nclr4= dptr[ 3 * right+ 2 ] ;
// Bilinear
clrR= ( Byte) ( ( 1.0 - fx) * ( 1.0 - fy) * ( double ) nclr1+ ( fx) * ( 1.0 - fy)
* ( double ) nclr2+ ( 1.0 - fx) * ( fy) * ( double ) nclr3+ ( fx) * ( fy) * ( double ) nclr4) ;
nclr1= tptr[ 3 * ix+ 1 ] ;
nclr2= tptr[ 3 * right+ 1 ] ;
nclr3= dptr[ 3 * ix+ 1 ] ;
nclr4= dptr[ 3 * right+ 1 ] ;
// Bilinear
clrG= ( Byte) ( ( 1.0 - fx) * ( 1.0 - fy) * ( double ) nclr1+ ( fx) * ( 1.0 - fy)
* ( double ) nclr2+ ( 1.0 - fx) * ( fy) * ( double ) nclr3+ ( fx) * ( fy) * ( double ) nclr4) ;
nclr1= tptr[ 3 * ix] ;
nclr2= tptr[ 3 * right] ;
nclr3= dptr[ 3 * ix] ;
nclr4= dptr[ 3 * right] ;
// Bilinear
clrB= ( Byte) ( ( 1.0 - fx) * ( 1.0 - fy) * ( double ) nclr1+ ( fx) * ( 1.0 - fy)
* ( double ) nclr2+ ( 1.0 - fx) * ( fy) * ( double ) nclr3+ ( fx) * ( fy) * ( double ) nclr4) ;
TempBitmap- > Canvas- > Pixels[ i] [ j] = ( TColor) RGB( clrR,clrG,clrB) ;
}
}
Image1- > Width= newW;
Image1- > Height= newH;
OriginalBitmap- > Width= newW;
OriginalBitmap- > Height= newH;
Image1- > Picture- > Bitmap= TempBitmap;
Image1- > Picture- > Assign( TempBitmap) ;
OriginalBitmap= TempBitmap;
OriginalBitmap- > Assign( TempBitmap) ;
delete AttendBitmap,TempBitmap;
}
dm9pZCBUTURJQ2hpbGQ6OlNjYWxlKCkKewogICAgICAgIEJ5dGUgKnRwdHIsKmRwdHI7CiAgICAgICAgR3JhcGhpY3M6OlRCaXRtYXAgKkF0dGVuZEJpdG1hcD1uZXcgR3JhcGhpY3M6OlRCaXRtYXAoKTsKICAgICAgICBBdHRlbmRCaXRtYXA9T3JpZ2luYWxCaXRtYXA7CiAgICAgICAgQXR0ZW5kQml0bWFwLT5QaXhlbEZvcm1hdD1wZjI0Yml0OwogICAgICAgIEF0dGVuZEJpdG1hcC0+V2lkdGg9T3JpZ2luYWxCaXRtYXAtPldpZHRoOwogICAgICAgIEF0dGVuZEJpdG1hcC0+SGVpZ2h0PU9yaWdpbmFsQml0bWFwLT5IZWlnaHQ7CiAgICAgICAgR3JhcGhpY3M6OlRCaXRtYXAgKlRlbXBCaXRtYXA9bmV3IEdyYXBoaWNzOjpUQml0bWFwKCk7CiAgICAgICAgVGVtcEJpdG1hcC0+QXNzaWduKE9yaWdpbmFsQml0bWFwKTsKICAgICAgICBUZW1wQml0bWFwLT5QaXhlbEZvcm1hdD1wZjI0Yml0OwogICAgICAgIGludCBkb3duLHJpZ2h0OwogICAgICAgIGludCAgICAgICAgICAgIHcsaCxuZXdXLG5ld0g7CiAgICAgICAgZG91YmxlICAgICAgICAgZFgsZFkseCx5OwogICAgICAgIGRvdWJsZSAgICAgICAgIHNjYWxhcjsgICAgICAgICAgICAgICAgICAgLy8gWm9vbSBzY2FsYXIKICAgICAgICBpbnQgICAgICAgICAgICBpLGo7CiAgICAgICAgaW50ICAgICAgICAgICAgaXgsaXk7ICAgICAgICAgICAgICAgICAgICAvLyBpbnRlZ2VyIHZhbHVlIG9mICh4LHkpCiAgICAgICAgZmxvYXQgICAgICAgICBmeCxmeTsgICAgICAgICAgICAgICAgICAgIC8vIGZsb2F0IHZhbHVlIG9mICh4LHkpCiAgICAgICAgdW5zaWduZWQgY2hhciAgY2xyLAogICAgICAgICAgICAgICAgIGNsclIsY2xyRyxjbHJCLAogICAgICAgICAgICAgICAgIG5jbHIxLG5jbHIyLG5jbHIzLG5jbHI0OyAgLy8gY29sb3Igb2YgbmVpZ2hib3IgNCBwaXhlbAoKICAgICAgICB3ID0gQXR0ZW5kQml0bWFwLT5XaWR0aDsKICAgICAgICBoID0gQXR0ZW5kQml0bWFwLT5IZWlnaHQ7CiAgICAgICAgc2NhbGFyID0gU3RyVG9GbG9hdChTY2FEbGctPkVkaXQxLT5UZXh0KTsKICAgICAgICBuZXdXPShpbnQpKChkb3VibGUpdypzY2FsYXIpOwogICAgICAgIG5ld0g9KGludCkoKGRvdWJsZSloKnNjYWxhcik7CiAgICAgICAgVGVtcEJpdG1hcC0+V2lkdGg9bmV3VzsKICAgICAgICBUZW1wQml0bWFwLT5IZWlnaHQ9bmV3SDsKICAgICAgICAvKiBDYWN1bGF0ZSB0aGUgc3RlcCBzaXplIG9mIG1vdmVtZW50ICovCiAgICAgICAgZFggPSAoZG91YmxlKXcvKGRvdWJsZSluZXdXOwogICAgICAgIGRZID0gKGRvdWJsZSloLyhkb3VibGUpbmV3SDsKICAgICAgICBmb3IoaiA9IDAgOyBqIDwgbmV3SCA7IGorKykKICAgICAgICB7CiAgICAgICAgICAgICAgICB5ID0gZFkqKGRvdWJsZSlqOwogICAgICAgICAgICAgICAgaXkgPSAoaW50KXk7CiAgICAgICAgICAgICAgICBmeSA9IHkgLSAoZmxvYXQpaXk7CiAgICAgICAgICAgICAgICBkb3duPWl5KzE7CiAgICAgICAgICAgICAgICBpZiAoZG93bj09aCkKICAgICAgICAgICAgICAgICAgICAgICAgZG93bj0wOwogICAgICAgICAgICAgICAgdHB0cj0oQnl0ZSopQXR0ZW5kQml0bWFwLT5TY2FuTGluZVtpeV07CiAgICAgICAgICAgICAgICBkcHRyPShCeXRlKilBdHRlbmRCaXRtYXAtPlNjYW5MaW5lW2Rvd25dOwogICAgICAgICAgICAgICAgZm9yKGkgPTAgOyBpIDwgbmV3VztpKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHggPSBkWCooZG91YmxlKWk7CiAgICAgICAgICAgICAgICAgICAgICAgIGl4ID0gKGludCl4OwogICAgICAgICAgICAgICAgICAgICAgICBmeCA9IHggLSAoZmxvYXQpaXg7CiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0PWl4KzE7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyaWdodD09dykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodD0wOwogICAgICAgICAgICAgICAgICAgICAgICBuY2xyMT10cHRyWzMqaXgrMl07CiAgICAgICAgICAgICAgICAgICAgICAgIG5jbHIyPXRwdHJbMypyaWdodCsyXTsKICAgICAgICAgICAgICAgICAgICAgICAgbmNscjM9ZHB0clszKml4KzJdOwogICAgICAgICAgICAgICAgICAgICAgICBuY2xyND1kcHRyWzMqcmlnaHQrMl07CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpbGluZWFyCiAgICAgICAgICAgICAgICAgICAgICAgIGNsclI9KEJ5dGUpKCgxLjAtZngpKigxLjAtZnkpKihkb3VibGUpbmNscjErKGZ4KSooMS4wLWZ5KQogICAgICAgICAgICAgICAgICAgICAgICAqKGRvdWJsZSluY2xyMisoMS4wLWZ4KSooZnkpKihkb3VibGUpbmNscjMrKGZ4KSooZnkpKihkb3VibGUpbmNscjQpOwoKICAgICAgICAgICAgICAgICAgICAgICAgbmNscjE9dHB0clszKml4KzFdOwogICAgICAgICAgICAgICAgICAgICAgICBuY2xyMj10cHRyWzMqcmlnaHQrMV07CiAgICAgICAgICAgICAgICAgICAgICAgIG5jbHIzPWRwdHJbMyppeCsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgbmNscjQ9ZHB0clszKnJpZ2h0KzFdOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBCaWxpbmVhcgogICAgICAgICAgICAgICAgICAgICAgICBjbHJHPShCeXRlKSgoMS4wLWZ4KSooMS4wLWZ5KSooZG91YmxlKW5jbHIxKyhmeCkqKDEuMC1meSkKICAgICAgICAgICAgICAgICAgICAgICAgKihkb3VibGUpbmNscjIrKDEuMC1meCkqKGZ5KSooZG91YmxlKW5jbHIzKyhmeCkqKGZ5KSooZG91YmxlKW5jbHI0KTsKCiAgICAgICAgICAgICAgICAgICAgICAgIG5jbHIxPXRwdHJbMyppeF07CiAgICAgICAgICAgICAgICAgICAgICAgIG5jbHIyPXRwdHJbMypyaWdodF07CiAgICAgICAgICAgICAgICAgICAgICAgIG5jbHIzPWRwdHJbMyppeF07CiAgICAgICAgICAgICAgICAgICAgICAgIG5jbHI0PWRwdHJbMypyaWdodF07CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpbGluZWFyCiAgICAgICAgICAgICAgICAgICAgICAgIGNsckI9KEJ5dGUpKCgxLjAtZngpKigxLjAtZnkpKihkb3VibGUpbmNscjErKGZ4KSooMS4wLWZ5KQogICAgICAgICAgICAgICAgICAgICAgICAqKGRvdWJsZSluY2xyMisoMS4wLWZ4KSooZnkpKihkb3VibGUpbmNscjMrKGZ4KSooZnkpKihkb3VibGUpbmNscjQpOwogICAgICAgICAgICAgICAgICAgICAgICBUZW1wQml0bWFwLT5DYW52YXMtPlBpeGVsc1tpXVtqXSA9IChUQ29sb3IpUkdCKGNsclIsY2xyRyxjbHJCKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgSW1hZ2UxLT5XaWR0aD1uZXdXOwogICAgICAgIEltYWdlMS0+SGVpZ2h0PW5ld0g7CiAgICAgICAgT3JpZ2luYWxCaXRtYXAtPldpZHRoPW5ld1c7CiAgICAgICAgT3JpZ2luYWxCaXRtYXAtPkhlaWdodD1uZXdIOwogICAgICAgIEltYWdlMS0+UGljdHVyZS0+Qml0bWFwPVRlbXBCaXRtYXA7CiAgICAgICAgSW1hZ2UxLT5QaWN0dXJlLT5Bc3NpZ24oVGVtcEJpdG1hcCk7CiAgICAgICAgT3JpZ2luYWxCaXRtYXA9VGVtcEJpdG1hcDsKICAgICAgICBPcmlnaW5hbEJpdG1hcC0+QXNzaWduKFRlbXBCaXRtYXApOwogICAgICAgIGRlbGV0ZSBBdHRlbmRCaXRtYXAsVGVtcEJpdG1hcDsKfQ==
compilation info
prog.cpp:1: error: ‘TMDIChild’ has not been declared
prog.cpp: In function ‘void Scale()’:
prog.cpp:3: error: ‘Byte’ was not declared in this scope
prog.cpp:3: error: ‘tptr’ was not declared in this scope
prog.cpp:3: error: ‘dptr’ was not declared in this scope
prog.cpp:4: error: ‘Graphics’ has not been declared
prog.cpp:4: error: ‘AttendBitmap’ was not declared in this scope
prog.cpp:4: error: expected type-specifier before ‘Graphics’
prog.cpp:4: error: expected `;' before ‘Graphics’
prog.cpp:5: error: ‘OriginalBitmap’ was not declared in this scope
prog.cpp:6: error: ‘pf24bit’ was not declared in this scope
prog.cpp:9: error: ‘Graphics’ has not been declared
prog.cpp:9: error: ‘TempBitmap’ was not declared in this scope
prog.cpp:9: error: expected type-specifier before ‘Graphics’
prog.cpp:9: error: expected `;' before ‘Graphics’
prog.cpp:25: error: ‘ScaDlg’ was not declared in this scope
prog.cpp:25: error: ‘StrToFloat’ was not declared in this scope
prog.cpp:41: error: expected primary-expression before ‘)’ token
prog.cpp:41: error: expected `;' before ‘AttendBitmap’
prog.cpp:42: error: expected primary-expression before ‘)’ token
prog.cpp:42: error: expected `;' before ‘AttendBitmap’
prog.cpp:74: error: ‘TColor’ was not declared in this scope
prog.cpp:74: error: expected `;' before ‘RGB’
prog.cpp:77: error: ‘Image1’ was not declared in this scope
prog.cpp:85: error: type ‘<type error>’ argument given to ‘delete’, expected pointer
prog.cpp:19: warning: unused variable ‘clr’
stdout