← Back to team overview

kicad-developers team mailing list archive

Re: Bug in Bit Map to component tool

 

IIRC it is already fixed in the product branch.
Den 08/05/2014 02.43 skrev "Peter Wintulich" <peter@xxxxxxxxxxxxxxxxxx>:

>  Hello,
> I think I have found a small error in the Bit Map to component tool.
> It is most noticeable when  'Negate Image' is selected in the options.
> It produces graphic artifacts along the top edge from the left and down
> the left side from the top.
>
> The errors appear to be the for next loops counting from one rather than
> from zero.
> I tested it in a local copy from the repository and this removed the
> artifacts.
>
> Regards Peter Wintulich
>
> Line 257 and 258 should be :
>
>     for( int y = 0; y < h; y++ )
>         for( int x = 0; x < w; x++ )
>
> Line 279 and 280 should be :
>
>     for( int y = 0; y < h; y++ )
>         for( int x = 0; x < w; x++ )
>
>
>
> In File:
> ~kicad-stable-committers/kicad/stable<https://code.launchpad.net/%7Ekicad-stable-committers/kicad/stable> :
> /bitmap2component<http://bazaar.launchpad.net/%7Ekicad-stable-committers/kicad/stable/files/4027/bitmap2component>/bitmap2cmp_gui.cpp
> (revision 4027)
>
> Existing code is
> Lines 249 through 286.
>
> void BM2CMP_FRAME::Binarize( double aThreshold ){
>     unsigned int  pixin;
>     unsigned char pixout;
>     int           h = m_Greyscale_Image.GetHeight();
>     int           w = m_Greyscale_Image.GetWidth();
>     unsigned int  threshold = (int)(aThreshold * 256);
>
>     for( int y = 1; y < h; y++ )
>         for( int x = 1; x < w; x++ )
>         {
>             pixin   = m_Greyscale_Image.GetGreen( x, y );
>
>             if( pixin < threshold )
>                 pixout = 0;
>             else
>                 pixout = 255;
>
>             m_NB_Image.SetRGB( x, y, pixout, pixout, pixout );
>         }
>
>     m_BN_Bitmap = wxBitmap( m_NB_Image );}
> void BM2CMP_FRAME::NegateGreyscaleImage( ){
>     unsigned char  pix;
>     int           h = m_Greyscale_Image.GetHeight();
>     int           w = m_Greyscale_Image.GetWidth();
>
>     for( int y = 1; y < h; y++ )
>         for( int x = 1; x < w; x++ )
>         {
>             pix   = m_Greyscale_Image.GetGreen( x, y );
>             pix = ~pix;
>             m_Greyscale_Image.SetRGB( x, y, pix, pix, pix );
>         }}
>
>
> --
>
> Peter Wintulich
>
> Voicetronix Pty. Ltd.
> Level 1, 246 Pulteney Street,
> ADELAIDE  5000
> South Australia
> AUSTRALIA+61 8 8232 9112
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>
>

Follow ups

References