Io per non saper nè leggere e nè scrivere ti posto l'intero metodo :P
codice:
public void Salva(String Percorso, PictureBox pic)
{
Bitmap bmp = new Bitmap(pic.Image);
Bitmap back = new Bitmap(pic.Width, pic.Height);
Graphics gra = Graphics.FromImage(back);
Brush bru = new SolidBrush(this.Colore);
gra.FillRectangle(bru, 0, 0, pic.Width, pic.Height);
gra.DrawImage(bmp, 0, 0);
if (!(wmlavorato == null))
{
int wmx, wmy, wmw, wmh, Lato;
int wmipsilon;
if (MantieniDimensioni)
{
if (immagine.Width > immagine.Height)
Lato = immagine.Width;
else
Lato = immagine.Height;
wmx = (int)(((float)picfake.Left / (float)picimgfake.Width) * (float)Lato);
wmipsilon = (int)(((float)picfake.Top / (float)picimgfake.Width) * (float)Lato);
wmw = (int)(((float)picfake.Width / (float)picimgfake.Width) * (float)Lato);
wmh = (int)(((float)picfake.Height / (float)picimgfake.Width) * (float)Lato);
}
else
{
Lato = pic.Width;
wmx = picfake.Left;
wmipsilon = picfake.Top;
wmw = picfake.Width;
wmh = picfake.Height;
}
bmp = new Bitmap(wmlavorato, wmw, wmh);
gra.DrawImage(bmp, wmx, wmipsilon);
}
if (Percorso.Substring(Percorso.Length - 3, 3).ToLower().Equals("eps"))
{
Percorso = Percorso.Substring(0, Percorso.Length - 3) + "jpg";
}
back.Save(Percorso, this.Compressione(Percorso));
}
Come noterai all'interno della if ho istanziato si wmy che wmipsilon, ma poi ho utilizzato la seconda, infatti, senza dare errori e niente, wmy non la istanzia, semplicemente è come se non l'avessi mai dichiarata.
La stessa cosa la fa se la chiamo ywm o y_wm (non ho provato altre combinazioni...), quindi sembra che sia un problema riconducibile alla Y.
Non ci sono variabili globali che si chiamano così quindi neanche potrebbe dipendere da questo, se riesci a capire dove sta l'inghippo sei un genio :P