Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
General
»
FloodFill
Free Pascal
Website
Downloads
Wiki
Documentation
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Documentation (RTL/FCL/LCL)
Bugtracker
CCR Bugs
GIT
Mailing List
Other languages
Foundation
Website
Useful Wiki Links
Project Roadmap
Getting the Source
Screenshots
How to use the forum
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
Hashids that you need but...
by
Thaddy
[
Today
at 06:10:34 am]
Recommended way to build ...
by
TRon
[
Today
at 06:02:51 am]
C++ conversion : what is ...
by
Thaddy
[
Today
at 05:44:34 am]
Setting the fpc path
by
TRon
[
Today
at 05:30:14 am]
Game Music Emulator
by
Guva
[
Today
at 05:25:58 am]
Bitmap 16bit R5G6B5
by
JZS
[
Today
at 05:13:29 am]
Incorrect FPC/Lazarus bui...
by
TRon
[
Today
at 04:58:15 am]
"Show Compiler Dialog"
by
JuhaManninen
[
Today
at 02:04:04 am]
Loading text data from a ...
by
carl_caulkett
[
Today
at 01:10:53 am]
Is there a better web-bro...
by
QEnnay
[September 17, 2024, 11:50:29 pm]
LazReport / FreeReport qu...
by
dseligo
[September 17, 2024, 11:37:59 pm]
Complex objects and JsonO...
by
Flea
[September 17, 2024, 11:02:28 pm]
Best way to exchange data...
by
cdbc
[September 17, 2024, 10:16:27 pm]
TListView.OnChange Event ...
by
msintle
[September 17, 2024, 10:11:04 pm]
Broken Icon Display on ma...
by
msintle
[September 17, 2024, 10:09:18 pm]
Compiler error when check...
by
ASerge
[September 17, 2024, 08:57:07 pm]
how to convert pdf to png...
by
zeljko
[September 17, 2024, 08:35:54 pm]
Simple multithreading cod...
by
MarkMLl
[September 17, 2024, 08:31:05 pm]
Golang vs free pascal
by
gidesa
[September 17, 2024, 08:27:08 pm]
Extended Module Player
by
TRon
[September 17, 2024, 06:32:25 pm]
Listview how to custom or...
by
VisualLab
[September 17, 2024, 05:48:48 pm]
Non-OS dependent way to u...
by
carl_caulkett
[September 17, 2024, 05:27:57 pm]
Problems with case statem...
by
MarkMLl
[September 17, 2024, 03:02:33 pm]
Tessellated Pattern: How ...
by
Boleeman
[September 17, 2024, 02:15:20 pm]
macOS 11 Cocoa headers
by
Hansaplast
[September 17, 2024, 12:44:49 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: FloodFill (Read 495 times)
BubikolRamios
Sr. Member
Posts: 296
FloodFill
«
on:
August 09, 2024, 09:48:20 am »
White is flood filled black, is this intended that the rest of
1 px
black lines are not flooded ?
Code: Pascal
[Select]
[+]
[-]
PaintBox1
.
Canvas
.
FloodFill
(
b
.
X
,
b
.
y
,
PaintBox1
.
Canvas
.
Pixels
[
b
.
X
,
b
.
y
]
,
fsSurface
)
;
«
Last Edit: August 09, 2024, 09:49:54 am by BubikolRamios
»
Logged
lazarus 3.2-fpc-3.2.2-win32/win64
Eugene Loza
Hero Member
Posts: 729
Re: FloodFill
«
Reply #1 on:
August 09, 2024, 08:13:32 pm »
Looks like it's the default behavior, GIMP does exactly the same way (see screenshot, flood-filled your white with black and then with red).
I believe this happens because flood-fill doesn't do "diagonal" movements, only vertical or horizontal.
Logged
My FOSS games in FreePascal&CastleGameEngine:
https://decoherence.itch.io/
(Sources:
https://gitlab.com/EugeneLoza
)
wp
Hero Member
Posts: 12299
Re: FloodFill
«
Reply #2 on:
August 09, 2024, 08:41:48 pm »
The parameter "fsSurface" fills all horizontally and vertically adjacent pixels having the specified color (
https://lazarus-ccr.sourceforge.io/docs/lazutils/graphtype/tgraphicsfillstyle.html
). But when you look carefully at the magnified screenshot in the first post you see that there is no connection from the white to the diagonally adjacent black pixels.
What you can do is to iterate over all pixels, check the color and replace black pixels with white. But do not use the Canvas.Pixels[x,y] property if your image has some reasonable size. Instead, convert the bitmap to a LazIntfImage which gives you much faster access to the pixels; at the end convert back to TBitmap. If you post your test image I can write a procedure for this.
«
Last Edit: August 09, 2024, 08:45:27 pm by wp
»
Logged
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Programming
»
General
»
FloodFill
TinyPortal
© 2005-2018