Я видел статьи, демонстрирующие, что чернила могут быть сохранены с фоновым изображением, чтобы чернила накладывались на изображение, а затем сохранялись как один файл изображения , Но, к сожалению, статьи, которые я видел, не вдаются в подробности о том, как это делается. я могу сохранить фоновое изображение достаточно легко со следующим утверждением:InkPicture control - Как сохранить как чернила, так и изображение в файл изображения
axInkPicture1.Picture.Save(@"\path\to\file.gif");
... но нет чернил наслаивали на фоновое изображение
Я не знаю ни одного прямого метода, чтобы сохранить чернила, но это, как я сейчас делаю это:
string tempPath = Path.GetTempPath();
string tempFile = tempPath + @"\file.gif";
// save to a temp file
if (axInkPicture1.Ink.Strokes.Count > 0)
{
byte[] bytes = (byte[])axInkPicture1.Ink.Save(InkPersistenceFormat.IPF_GIF, InkPersistenceCompressionMode.IPCM_Default);
using (MemoryStream ms = new MemoryStream(bytes))
{
using (Bitmap gif = new Bitmap(ms))
{
gif.Save(tempFile);
}
}
}
Это экономит чернила, но нет фонового изображения.
Как сохранить как чернила, так и изображения в один файл?
Любая помощь или направление указательного ценится ...
### EDITВот что еще я пытался до сих пор
InkRectangle inkBox = axInkPicture1.Ink.GetBoundingBox();
byte[] gifbits = (byte[])axInkPicture1.Ink.Save(InkPersistenceFormat.IPF_GIF, InkPersistenceCompressionMode.IPCM_Default);
using (System.IO.MemoryStream buffer = new System.IO.MemoryStream(gifbits))
using (var inkImage = new Bitmap(buffer))
using (var picture = new Bitmap(axInkPicture1.Picture))
using (var g = Graphics.FromImage(picture))
{
g.DrawImage(inkImage, new Rectangle(inkBox.Left, inkBox.Right, axInkPicture1.Picture.Width, axInkPicture1.Height));
picture.Save(tempFile, System.Drawing.Imaging.ImageFormat.Gif);
}
... но я до сих пор не имея при удаче. Это сохраняет только фоновое изображение, а не чернила. Любые идеи, что я делаю неправильно?
Заранее спасибо
Вскоре после того, как отправляя это решение, у меня возникли проблемы с файлом Microsoft.Ink.dll, который я использовал из SDK Tablet PC. Я нашел правильный путь к .dll, который вы указали выше, с помощью HansPassant. Вот ссылка [link.] (Http://stackoverflow.com/questions/21069420/visual-studio-2012-removes-inkpicture-control-every-time-i-open-my-project) – smitty1