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
IDE odd behaviour
by
alpine
[
Today
at 07:38:13 am]
Terminal Component Availa...
by
JZS
[
Today
at 07:37:28 am]
CPU & Memory Profiler
by
AlexTP
[
Today
at 07:29:58 am]
Is there a "canonical" Gi...
by
vfclists
[
Today
at 07:05:31 am]
LazCAD – First Release!
by
veb86
[
Today
at 07:04:18 am]
Problem with pasting text...
by
paweld
[
Today
at 06:22:36 am]
Browser User Agent & Frie...
by
Thaddy
[
Today
at 06:13:41 am]
Advice/Guidance Needed Wi...
by
dbannon
[
Today
at 06:07:33 am]
Was:Forum Upgrade? by @Re...
by
Curt Carpenter
[
Today
at 04:25:33 am]
TStateMachine
by
avra
[
Today
at 12:44:55 am]
Lazarus IDE Windows 64 lo...
by
StuPot
[
Today
at 12:01:38 am]
My first Attempt making a...
by
jamie
[September 09, 2024, 11:43:32 pm]
Unable install latest fpc...
by
marcov
[September 09, 2024, 11:03:47 pm]
Extended Module Player
by
Gigatron
[September 09, 2024, 09:11:48 pm]
How to disable the compat...
by
Jonas Maebe
[September 09, 2024, 08:59:30 pm]
How to create webhook in ...
by
Prakash
[September 09, 2024, 07:59:41 pm]
New Component jZCamView
by
Guser979
[September 09, 2024, 07:49:22 pm]
Forum upgrade?
by
MarkMLl
[September 09, 2024, 07:47:00 pm]
Is there a maximum length...
by
Remy Lebeau
[September 09, 2024, 07:35:30 pm]
PATCH method in fphttpcli...
by
JohnnieK
[September 09, 2024, 05:57:38 pm]
THTTPRouter Documentation
by
JohnnieK
[September 09, 2024, 05:54:48 pm]
TryStrToFloat
by
jcmontherock
[September 09, 2024, 05:25:30 pm]
Having difficulty buidlin...
by
MarkMLl
[September 09, 2024, 03:49:23 pm]
Move a window between Wor...
by
dbannon
[September 09, 2024, 02:05:28 pm]
Loosing mouse clicks when...
by
Wilko500
[September 09, 2024, 12:51:41 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: FloodFill (Read 486 times)
BubikolRamios
Sr. Member
Posts: 293
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: 12274
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