|
|
|
Hi, I have an image in memory as an RGB array, I need to make a fast copy of it?
I access the image in usafe mode using the following pointer byte* p = (byte*)(void*)pBuffer; I need another copy of the data so that I can create a new pointer to it and leave my origional data unaffected.
Thanks...
|
|
|
|
|
I guess you can use System.Runtime.Interop.Marshal.AllocHGlobal to do that. I wouldn't do this in managed code at all but I guess it should work.
led mike
|
|
|
|
|
SELECT product.name AS Name, product.modelNo AS [Model No], product.[desc] AS Description, category.categoryName AS Category,
product.MRSP AS MSRP, product.retailPrice AS [Retail Price], product.[image] AS Img
FROM (category INNER JOIN
product ON category.categoryID = product.categoryID)
When this is being showed on my datagrid, the retail price and msrp is not in currency format. How do i make it either adding a $ sign infront OR having it to be 2 decimal place
|
|
|
|
|
This has nothing to do with your SQL query. You need to learn how to use the datagrid specifically how to format things. I suggest you find some beginner articles about using the DataGrid. I imagine there are some here on CodeProject. If you are trying to use the ASP.NET DataGrid you might also want to check out the DataGrid Girl's web site.
http://www.datagridgirl.com/[^]
led mike
|
|
|
|
|
Hello,
I wonder if it is possible to execute some lines of code, which are stored in a config-file, e.g. textfile.
I guess there is a way using Reflection, so could anyone give me a hint on where to start?
Thanks in advance.
|
|
|
|
|
buchstaben wrote: I guess there is a way using Reflection, so could anyone give me a hint on where to start?
This Article[^] might be as good a place to start as any
led mike
|
|
|
|
|
Hello,
I have several high-res (600dpi) TIFF files. I need to stitch these files together into one new high-res (600dpi) TIFF file. I got it working with the standard resolution (96dpi) but i can't get it to work with 400 or 600 dpi. Any help would be welcome!
This is the code i have so far:
Bitmap bmp = new Bitmap((int)imagewidth, (int)imageheight, PixelFormat.Format24bppRgb);
bmp.SetResolution(600, 600);
Graphics g = Graphics.FromImage(bmp);
int startpoint = 0;
for (int x = 0; x < bands.Count; x++)
{
string file = bands[x].ToString();
Bitmap tmp = new Bitmap(file);
g.DrawImage(tmp, startpoint, 0, tmp.Width, tmp.Height);
startpoint = startpoint + tmp.Width;
}
bmp.Save("c:\\bands\\alltogeher.tif", ImageFormat.Tiff);
Thanks, Ben
|
|
|
|
|
bverp wrote: I got it working with the standard resolution (96dpi) but i can't get it to work with 400 or 600 dpi.
What is the error you are getting?
|
|
|
|
|
Parameter invalid. It doesn't say much about the error.
|
|
|
|
|
bverp wrote: Parameter invalid. It doesn't say much about the error.
Yeah, they are normally not very helpful in GDI+.
I suspect .NET does not support such large DPI on images.
|
|
|
|
|
Which line is the error occurring on?
What are the values of the parameters when that line is executed?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
|
There AIN'T no f&^*in french fries!
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I get the Parameter is not valid error on line:
Bitmap bmp = new Bitmap((int)inputwidth, (int)inputheight, PixelFormat.Format24bppRgb);
The inputwidth is 16762 and the inputheight is 23258.
Thanks, Ben
|
|
|
|
|
I tried the following code on Vista (2GB RAM) and it worked fine
(took some grinding to create and compress that big image though! )
int imagewidth = 16762;
int imageheight = 23258;
Bitmap bmp = new Bitmap((int)imagewidth, (int)imageheight, PixelFormat.Format24bppRgb);
bmp.SetResolution(600, 600);
bmp.Save("e:\\alltogeher.tif", ImageFormat.Tiff);
I would guess either you're not getting enough memory to create that huge
bitmap or you're on a version of Windows that has a GDI+ limit on bitmap
dimensions.
The resolution is added to the bitmap's/file's metadata (for types that support it)
but it doesn't affect the size of the image.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thanks for the reply. I tried it on Vista and it works. Do you know a method to get it to work on Windows XP?
Ben
|
|
|
|
|
I'm not sure. Vista has a newer GDI+ version that is not available for
any pre-Vista OSs. I can't find any documented maximum bitmap dimensions
for GDI+.
Are you sure the system is able to get the 1GB chunk of memory needed for that
image? If so, does smaller dimensions work?
I would at least expect it to work with dimensions that fit in a 16 bit signed int,
like GDI.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I have 2GB of memory in my system. The initial size of the pagefile is set to 756MB, the maximum size of the pagefile is set to 1512MB.
I'm not familar with C++. Do you think it is a .NET limitation and that it could be possible with C++. Do you have the code for me?
Ben
|
|
|
|
|
bverp wrote: Do you think it is a .NET limitation
I don't think so - you're using the same version of .NET on both platforms, right?
If smaller image dimensions works on XP, then that's the solution - you can't
use GDI+ for bitmaps that big...you'll have to use something else or write your own
image handling code.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
If you don't want to resize the images, the resolution is irrelevant. It's only used to convert between measurements in inches and pixels.
I see that you create a bunch of Bitmap objects that you never dispose. That's not good for the memory management.
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
Hello,
I am using the smtpclient class to deliver mail to an smtp server
but I want to know the statues of each recipient in my message whether it receives it or not. Ok, my question will be like this is the smtpclient class works in a transaction? which means that its only objective is to deliver the mail message to the smtp server and not to follow whether this server will send it or not?
Thanks.
Dad
|
|
|
|
|
hadad wrote: I want to know the statues of each recipient in my message whether it receives it or not.
You are sending an email. When you send an email do you get a notification if the client failed to receive it? How does that notification manifest itself?
You will only get an immediate notification if the connection to your immediate SMTP server fails. After that, if it fails you will get an email back - maybe, possibly, perhap, then again maybe not.
You might like to read up on how email works, then you will understand what limitations there are.
|
|
|
|
|
I'm writing a class that relies on a TcpClient. The class has a Connect() method that starts a new thread reading data from a server. If the Connect() method has previously been called and the TcpClient is in the process of connecting or is connected I want to throw an Exception. When the connection closes I want to dispose of any resources associated with the TcpClient. Is this the correct way to go about it? I'm guessing not.
using System;
using System.IO;
using System.Net.Sockets;
using System.Threading;
namespace foo
{
public class foo
{
bool b;
TcpClient tcpClient;
NetworkStream networkStream;
StreamWriter streamWriter;
StreamReader streamReader;
public void Connect(string addr, int port)
{
if (b) throw new InvalidOperationException();
Thread t = new Thread(new ThreadStart(delegate
{
try
{
b = true;
tcpClient = new TcpClient();
tcpClient.Connect(addr, port);
networkStream = tcpClient.GetStream();
streamReader = new StreamReader(networkStream);
streamWriter = new StreamWriter(networkStream);
while (tcpClient.Connected)
{
string s = streamReader.ReadLine();
// do some wacky stuff
}
try { streamReader.Close(); }
catch { }
try { streamWriter.Close(); }
catch { }
try { networkStream.Close(); }
catch { }
try { tcpClient.Close(); }
catch { }
b = false;
}
catch (Exception e)
{
try { streamReader.Close(); }
catch { }
try { streamWriter.Close(); }
catch { }
try { networkStream.Close(); }
catch { }
try { tcpClient.Close(); }
catch { }
b = false;
}
}));
t.Start();
}
}
}
|
|
|
|