Hallo,
ich versuche eine Bitmap Datei in die Windowszwischenablage zu kopieren was auch soweit funktioniert die zwischenablage stellt die Datei als CF_DIB und CF_BITMAP zur verfügung allerdings kann ich die DIB in einer externen C++ Anwendung nicht weiterverarbeiten.
Ich Quäle mich jetzt schon seit 5 Tagen mit dem Problem ohne irgendwelche Infos zu finden woran es liegen könnte hier mal der Code mit dem die Bitmap in die Zwischenablage kopiert wird.
Weiterverarbeitet wird der Inhalt der Zwischenablage hier
ich bin für jede Hilfe Dankbar alternativ ginge auch ein weg mit dem ich ein DIB Handle in C# erzeugen kann bin ziemlicher C# Newbie
Thx
Thorsten
ich versuche eine Bitmap Datei in die Windowszwischenablage zu kopieren was auch soweit funktioniert die zwischenablage stellt die Datei als CF_DIB und CF_BITMAP zur verfügung allerdings kann ich die DIB in einer externen C++ Anwendung nicht weiterverarbeiten.
Ich Quäle mich jetzt schon seit 5 Tagen mit dem Problem ohne irgendwelche Infos zu finden woran es liegen könnte hier mal der Code mit dem die Bitmap in die Zwischenablage kopiert wird.
Code:
Bitmap im = new Bitmap(file.Name);
int width, height, x, y;
width = 430; height = 70;
x = 580; y = 1820;
Bitmap croppedBitmap = new Bitmap(width, height);
Graphics g = Graphics.FromImage(croppedBitmap);
// Die Zeichenqualität einstellen
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
// Den Ausschnitt des Quellbilds auf das Ziel-Bild kopieren
Rectangle destRect = new Rectangle(0, 0, width, height);
g.DrawImage(im, destRect, x, y, width, height, GraphicsUnit.Pixel);
g.Dispose();
IDataObject dataObj = new DataObject();
dataObj.SetData(DataFormats.Bitmap, croppedBitmap);
Clipboard.SetData(dataObj);
Weiterverarbeitet wird der Inhalt der Zwischenablage hier
Code:
bool bAvail= IsClipboardFormatAvailable(CF_DIB);
if (bAvail)
{
::OpenClipboard(NULL);
hBitmap = (long) GetClipboardData(CF_DIB);
int nChar= ICR_RecognizeLine(Session, (long) hBitmap, 0);
::CloseClipboard();
}
ich bin für jede Hilfe Dankbar alternativ ginge auch ein weg mit dem ich ein DIB Handle in C# erzeugen kann bin ziemlicher C# Newbie
Thx
Thorsten
Zuletzt bearbeitet: