2012-10-24 3 views
0

J'utilise ci-dessous pour la capture de signature sur ma demandeSaving Signature capture comme jpg

https://github.com/Cheesebaron/MonoDroid.CaptureSignature

Son fonctionne bien si je sauve l'image au format PNG, mais je veux enregistrer en jpg

J'ai changé Bitmap.CompressFormat.Png à Bitmap.CompressFormat.Jpg

mais ce que je reçois est un fichier noir jpg parce que l'écriture est en noir

et l'arrière-plan est déjà noir. Comment puis-je rendre l'arrière-plan de l'image blanc?

i code a changé

using (var fs = new FileStream(extFileName, FileMode.OpenOrCreate)) 
{ 
    _capture.CanvasBitmap().Compress(Bitmap.CompressFormat.Jpg, 100, fs); 
} 

Vous cherchez de l'aide. Merci

Répondre

0

Je pense que vous ne pouvez le faire en définissant la couleur sur un canevas.

Voir How to change the background color of a saved transparent bitmap

Vous pouvez essayer de changer:

_capture.CanvasBitmap().Compress(Bitmap.CompressFormat.Png, 100, fs); 

à quelque chose comme:

var b = _capture.CanvasBitmap(); 
var newBitmap = Bitmap.CreateBitmap(b.Width, b.Height, b.Config); 
var canvas = new Canvas(newBitmap); 
canvas.DrawColor(Color.WHITE); 
canvas.DrawBitmap(b, 0, 0, null); 
newBitmap.Compress(Bitmap.CompressFormat.Jpg, 100, fs); 

Mais ce code est non testé ici - désolé!

+0

non testé mais fonctionne très bien. Merci Stuart La seule chose que je devais changer était var newBitmap = Bitmap.CreateBitmap (b.Width, b.Height, Bitmap.Config.Argb8888); – user1573610