How do I create a ‘Negative’ representation of my image?
This is quite simple actually. All you need to do is determine the color of a given pixel, and then subtract the RGB values from 255 (the maximum) and then reset the pixel. Here is the pertinent code. [Code – C#] for(int x = 0; x < mybitmap.Width; x++) { for(int y = 0; y < mybitmap.Height; y++) { //get the current color of the pixel System.Drawing.Color c = mybitmap.GetPixel(x,y); mybitmap.SetPixel(x,y, System.Drawing.Color.FromArgb(255 – c.R, 255 – c.G, 255 – c.B)); } } Note: This modifies the existing image, so work on a copy if you want to maintain the original.
How do I create a ‘Negative’ representation of an image?
This is quite simple actually. All you need to do is determine the color of a given pixel, and then subtract the RGB values from 255 (the maximum) and then reset the pixel. Here is the pertinent code. [Code – C#] for(int x = 0; x < mybitmap.Width; x++) { for(int y = 0; y < mybitmap.Height; y++) { //get the current color of the pixel System.Drawing.Color c = mybitmap.GetPixel(x,y); mybitmap.SetPixel(x,y, System.Drawing.Color.FromArgb(255 – c.R, 255 – c.G, 255 – c.B)); } } Note: This modifies the existing image, so work on a copy if you want to maintain the original.
How does VS.Net find the referenced assemblies when I build a project from the command line?
There are a couple of ways to specify where VS.Net looks for the assemblies that you reference in your project when building from the command line. One way is to specify the ‘HintPath’ for the reference: <Reference Name = ‘MyAssembly.dll’ AssemblyName = ‘MyAssembly.dll’ HintPath = ‘..\work\samples\assemblies\MyAssembly.dll’ /> However, this would require all of the systems that build the application to have the exact same directory structure locally. There are often times when this is not wanted (or needed), such as having a script on a build machine. In this type of situation, you can use the DEVPATH environment variable, or make use of the Public Assembly folder functionality To use the DEVPATH environment variable, you would simply add the folder that contains the assembly (e.g. ‘c:\work\samples\assemblies’) to the list of directories. Then, you will need to specify the <developmentMode> element in the machine configuration file: <configuration> <runtime> <developmentMode developerInstallation=’true’> </runtime> </configuration> This will instruct the CLR to locate the assemblies based on the DEVPATH environment variable. A less restrictive way to specify the assembly locations is by making use of the Public Assembly Folder functionality. This is done by adding a path to the PublicAssemblies registry key. Open up the registry, and locate the ‘HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\AssemblyFolders’ key (for VS.Net 2003, you would look under the ‘…\VisualStudio\7.1\AssembliesFolders’ key). You will see a subkey named ‘PublicAssemblies’. This is where you will want to add additional keys to create your own Public folders. To add your own folder, create a key (e.g. MyAssemblies), and set the default value to be the desired path (e.g. ‘c:\work\samples\assemblies’). The option you choose will simply depend on your needs.
How can I print my rich text
There is no direct support for printing rich text in the .NET Framework. To print it, you can use interop with the SendMessage API and these three messages to do your printing. EM_SETTARGETDEVICE : specify the target device EM_FORMATRANGE : format part of a rich edit control’s contents for a specific device EM_DISPLAYBAND : send the output to the device Here is a link to a MSDN article by Martin Muller that implements this interop solution. Getting WYSIWYG Print Results from a .NET RichTextBox
How to retrieve the assembly version, name, etc. contained in the ‘AssemblyInfo.cs’, from inside the running app?
Here is a way to do this: 1) string strVersion = Application.ProductVersion; 2) Assembly assembly = Assembly.GetCallingAssembly(); string strVersion = assembly.GetName().Version.ToString(); The Application class offers also access to additional information like ProductName and so on. (Information provided by Holger Persch in our forums)