Если вы загружаете изображение, используя технику в следующей строке
Image imgPhoto = Image.FromFile("myphoto.jpg");
тогда это держит дескриптор открытым для файла, поэтому, когда вы пытаетесь перезаписать его, файл все еще используется в настоящее время, и поэтому вы не можете записать в него.
Чтобы обойти это, если вы загружаете файл в поток, это позволяет перезаписать исходный файл, поскольку дескриптор файла был освобожден, поскольку информация об изображении записана в память.
Вы можете сделать это следующим образом:
FileStream fs = new FileStream("myphoto.jpg", FileMode.Open);
Image imgPhoto = Image.FromStream(fs);
fs.Close();