A short semi fast flood fill. I'm about to run it on 10+ million shapes. There always seem to be a few unique situations where something doesn't work.
Public Sub Fill(ByVal bmp As Bitmap, ByVal pos As Point, ByVal color As Color)
If bmp Is Nothing OrElse pos.X < 0 OrElse pos.Y < 0 OrElse pos.X >= bmp.Width OrElse pos.Y > bmp.Height Then Exit Sub
Dim bmd As BitmapData = bmp.LockBits(New Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, bmp.PixelFormat)
Dim stride As Integer = bmd.Stride
I have decided to use a flood fill algorithm for my application, using this pseudo-code from Wikipedia:Flood-fill (node, target-color, replacement-color):
1. Set Q to the empty queue.
2. If the color of node is not equal to target-color, return.
3. Add node to Q.
4. For each element n of Q:
5. If the color of n is equal to target-color:
6. Set w and e equal to n.
7. Move w to the west until the color of the node to the west of w no longer matches target-color.
8. Move e to the east until the color of the node to the east of e no longer matches target-color.
9. Set the color of nodes between w and e to replacement-color.
10. For each node n between w and e:
11. If the color of the node to the north of n is target-color, add that node to Q.If the color of the node to the south of n is target-color, add that node to Q.
12. Continue looping until Q is exhausted.
13. Return.
I was doing alright, until I hit the "continue looping until Q is exhausted".I don't quite get that.
im working on changing this code.. The code do a "floodfill", but I want a "floodfill" with a range of color..so i dont understand very much of this code, but somehow i want to change the recursive funciontion to paint only in a certain region I think I have to work whit this function. Actually I do, changing the fourth parameter (before: &HFFFFFF)ExtFloodFill(hMDC, e.X, e.Y, CInt("&H" + Hex(pixR) + Hex(pixG) + Hex(pixB)), 1) I only found this code to do that, I tried to do my own recursive function, but it didnt work..
faster way to flood fill an area of a bitmap? It basically acts just like the fill flood bucket in MS Paint. clsBitmapImage is a Bitmap variable.
Code:
Code: Public Sub FloodFill(ByVal AtPoint As Point, ByVal newColor As Color) Dim oldColor As Color = clsBitmapImage.GetPixel(AtPoint.X, AtPoint.Y) If oldColor.ToArgb <> newColor.ToArgb Then
Which one of these two do you suggest for writing simple windows form applications?Visual C++ is too complicated for my small to medium applications and the proccess of creating seems to be longer when compared with C# or VB.NET.
I am currently making a small flood runner like game, I completed most of it, but I can't seem to get the jump action right. I got it to jump straight up and back down again, but it doesn't work when I use a left/right arrow key with it to perform a left/right jump. The sprite goes straight up if I only press space.What I want- The sprites goes up and right or left when I press space while holding right or left.
I found an example of a simple irc client, but I'm really confused about how it sends data back to the irc server. In the example, this is the code used to respond to the server's PING request. it lies in the onDataArrival event of a sockets client:[Code]
However with this simplified code, as soon as it tries to respond to the PING request it is disconnected from the irc server with the reason "Excess Flood". So I was hoping someone could explain to me the difference between the pretty complicated method and my simplified one which doesn't work.
Trying to make a simple browser with some simple addon's. What Ive done is setup a menu(forum) for the user to enter their email providers web address and it will save it in a xml file. When they click on the email link, it should load the email xml iformation and place that info in the tb_html.text and navigate. I keep getting a null exception and im not sure what going on here. Here is the code:
Browsers: Private Sub btn_Email_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Email.Click 'Load Action Dim SavedEmailObj As Storage
I just want to display data of a single column from an oracle table into a datagridview or a listbox for readonly with no requirements to make changes to it. Simply display the information.What is the best way forward... To used DATAADAPTER or DATAREADER.s DATAGRIDVIEW SLOWER TO FILL THAN a LISTBOX.i am using the following code to fill datatgridview but for some odd reasons at time it is slow to display the data. I want to use listbox instead
Dim ds As New DataSet Dim adp As OracleDataAdapter adp = New OracleDataAdapter("select customer_name from customers")
I've been developing a simple virus scanner and it works by reading the hex code of a file and comparing it to signatures from a database. Anyway, the only thing slowing it down is how it reads the hex. This is the hex reading part of my code so far:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadFile.Click Dim ArrayHold() As Byte Dim Index As Integer = 0 Dim Str As New StringBuilder
What I need is to highlight multiple matches within some portion of text as the user types a search pattern. Right now I'm using a RichTextBox to highlight text. The highlighting takes place if a user changes the search pattern and naturally it happens with each key press. It works, but I'm experiencing a performance issues. If the text is large enough the highlighting takes too long (up to several seconds). Facing that I tried to launch the highlighting procedure in a different thread aborting it and launching it again if the search pattern was changed during the highlighting but still I'm not satisfied with performance. Now I'm asking if there some other control I could use to speed up the process?
OK. I am making application for copying. Problem is that every time application wants to write it first tries to write via fast IO and get response that it isn't allowed and then it writes a file (i am assuming without fast i/o). I have no idea what fast i/o is (i know io is input output -> read write). So I can assume that it is handled by class that I am using to write. I am using System.IO.FileStream and its functions Read and Write. Is there any other class that I can use witch will allow Fast IO or disable trying it in first place (I would like the first solution)? Or should I do something else?
I need to transfer files from one server to multiple cients (using the internet) in the fastest possible way in .NET . What are the different types of transfer protocols which can be used in .NET or VB.NET so that the files are sent in a very short time ? I have tried using FTP, but that is slow because it requires authentication, handshaking etc. What i want to know is the options which we have in .NET for sending files in the fastest possible way between a server and multiple clients.
I have text file which contain the 15000000 Rows with the Comma delimiters..i want to import that file to SQL Table Through VB.net(2005) With 1000 Rows per seconds. Is that Possible through VB.net
In a scientific application I'm writing (vb.net) I use a huge collection of object stored in a tree structure. Every object exposes a LastAccessed property (datetime) that stores the last time the node was accessed by the algorithm.I need to find a fast way to find the N least accessed objects in the structure.I'm using an algorithm like this (pseudo-code)
dim Olist as new list (of myobject) .... array.sort(Olist,address of compareByDataReverse) for index=0 to N-1[code]....
I'm sure there is a better way to do that because the list is normally huge ( consisting of more than 10^6 objects).
I m inserting 30 to 50 records .then set table as datasource to report.It takes 5 minutes.Plz anybody tell me how to do it fast.Then my pc is hangedI have also tried adding datarows into datatable instead of inserting records into access database and set datatable to report.but same time cosumed.
I need to implement a fast FIFO (First in First Out) buffer which has a fixed size (so data effectively falls out the end, much like a shift register) for a DSP (Digital Signal Procesing) Filter i have written. My question is there any faster way of doing the buffer other than as follows: _
'-- FIFO Buffer Private Inputs As New List(Of Double) For i As Integer = 0 To Data.Length - 1
I'm recreating an old 16 bit game. I'm creating the chat normally displayed at the bottom.Each sentence transitions in character-by-character.Every time a character is added, I wanted to have it make that little bleep noise. I've got a wav file that contains a short 'blip' that sounds just right, problem is, when I have it do the blip every time, it usually messes up.
I found the below sample to retrieve webpages. I need to request a lot of pages from the same website which requires authentication. Because there are a lot of pages to retieve I like to speed up the requests and like to avaoid to send the credentials and also the certificate. Is it somehow possible to stay connected?
I have written a logon script using Visual Basic Studio Express 10 and it simply installs printers and adds network shared drives. It does look at the users Active Directory group and add drives / printers. But on occasion it doesn't install the drives or printers.
I've placed a copy of the logon exe on the desktop and if the user finds they are missing drives etc they click on this and add them again. This has never failed so I'm curious as to why exactly the same exe would fail at logon? Is it something to do with speed of the computer or a time out somewhere? A frustrating problem!
I have this: vb.net Private Sub doWork_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles doWork.Tick Me.doWork.Stop() For outer As Integer = 0 To Me.queriedDGV.Rows.Count - 1 For inner As Integer = 0 To Me.hebdataDGV.Rows.Count - 1 Application.DoEvents() [Code] .....
It works fine when I step through it with F8, but when running normally, I guess it's going so fast that I get an Index out of range when the outer For loop increments to the second iteration. I tried putting a timer in there to give it a chance to update the UI, but that didn't work. I also tried "Application.DoEvents" as a last resort, and that didn't work either.
I have an operation that will be performed MANY times and so I need it to be as fast as possible, thus I think keeping validations to a minimum is important here.I'm given an image, an offset and a size; and the idea is to take the color that appears the most within the area determined by the size and offset, so far I have this:
Private Shared Function someFunction(image As Bitmap, offset As Point, sampleSize As Size) As Color Dim pixelsColors As New List(Of Color)
I have a bundle of tiny pictureboxes on a form. The number is specified by the user, but it could be up to 100, or so. The user can select any set of these pictureboxes by a variety of means. I want to change the image to show the selection state of the pictureboxes, and I'm looking for the best way to do that. The pictureboxes each shows a bitmap. The brute force method would be to have a selected image and an unselected image and just swap them, but it seems like there ought to be a way to do something significant and reversible to the image, such as inverting the colors, that might be smaller that having a second copy of each image.
I need a method of quickly searching a large 2 dimensional array. I extract the array from Excel, so 1 dimension represents the rows and the second the columns. I wish to obtain a list of the rows where the columns match certain criteria. I need to know the row number (or index of the array).
For example, if I extract a range from excel. I may need to find all rows where column A ="dog" and column B = 7 and column J > "a". I only know which columns and which value to find at run time, so I can't hard code the column index. I could use a simple loop, but is this efficient ? I need to run it several thousand times, searching for different criteria each time.
I have a coma separated text file with loads of records. Usually when we read a text file we start from the first line and go towards the last. I know that there will be x comas per record.But I want to start reading from the last line and then towards the top. This enables me to stop before I reach the top (depending on the data).
What would be the fastest way to read a text file in VB.NET?. I am using VS2008. Basically I want to read from last line and go upwards and stop when I want. I may not need to read the entire file.
[Note: I want to store data in an array and not show it in some textbox]
How to create Key access for that fast array in VB.NET [code] waiting for any sample, this sample fastest for me work, but retrieve by key not only by number.