Ich habe es geschafft, die x,y,height,width
des Bereichs zu erhalten, die ich aus der Zeichnung auf der InkCanvas zuschneiden muss. aber ich bin nicht in der Lage, die richtige Lösung zu finden, um diesen Bereich zu beschneiden und als Bild zu speichern.Crop inkCanvas Zeichnung aus einem bestimmten Bereich, Windows Universal App
Edit: ist hier die ganze Geschichte: entwickelte ich eine Zeichenanwendung vor einem Jahr für Windows Phone 8.1 Silverlight. Dieses Beispiel mit
http://bsubramanyamraju.blogspot.com/2014/03/windows-phone-ink-supportsignature.html
Jetzt versuche ich, die gleiche Sache mit einigen unterschiedlichen Funktionalitäten für Witwen universal zu machen. Ich entwickle es von Grund auf neu, weil jetzt Tinte in Win10 verfügbar ist plus ich kann den alten Code nicht verwenden, da er InkPresenter enthält, der nur für Silverlight-Anwendungen verfügbar ist.
Hier ist der Code, den ich für das Zuschneiden der Fläche letztes Mal verwendet (dies ist nicht mein eigener Code ist, habe ich es online)
static WriteableBitmap CropImage(WriteableBitmap source,
int xOffset, int yOffset,
int width, int height)
{
// Get the width of the source image
var sourceWidth = source.PixelWidth;
// Get the resultant image as WriteableBitmap with specified size
var result = new WriteableBitmap(width, height);
// Create the array of bytes
for (var x = 0; x <= height - 1; x++)
{
var sourceIndex = xOffset + (yOffset + x) * sourceWidth;
var destinationIndex = x * width;
Array.Copy(source.Pixels, sourceIndex, result.Pixels, destinationIndex, width);
}
return result;
}
Aber jetzt heißt es
'WriteableBitmap' does not contain a definition for 'Pixels'
bei source.Pixels
und source.Pixels
und ich weiß nicht, wie ich es beheben soll.
Ich habe diese Frage gepostet in der Hoffnung, dass es einen direkten Weg geben muss, den InkCanvas-Bereich zu beschneiden, da es jetzt ein Teil von win10 ist.
Edit 2 @Jay die Breite und Höhe, die ich in Parametern bin vorbei ist die Breite und Höhe des Bereichs, die ich in Bezug auf die x- und y-zuschneiden möge. Ich probierte das Debugging, um den Wert von decoder.PixelWidth
und height
zu überprüfen. es ist immer dasselbe wie die Breite und Höhe, die ich in den Params zur Verfügung stelle.
so jetzt, wenn xoffset =185
und yoffset=100
und die height
und width
in dem params ist 50
und 60
. die decoder.PixelWidth
und decoder.PixelHeight
werden auch die gleichen wie params sein. das ist, was die, wenn die Bedingung wie
if (pixelWidth > decoder.PixelWidth - xOffset || pixelHeight > decoder.PixelHeight - yOffset)
if (60> 60 - 185 || 50> 50- 100)
if (60> -125 || 50> -50)
daher diese Bedingung immer wahr ist. Wo gehe ich falsch?
Ich hoffe, ich habe keine Tippfehler in dieser Bearbeitung gemacht.
Was haben Sie bisher versucht? – AVK
@AVKNaidu lesen Sie bitte den Bearbeitungs – saira