1
創建條碼這是我的代碼來創建條碼圖像:從字體免費3 9
class Program
{
static void Main(string[] args)
{
CreateBarcode("The quick brown fox jumps over the lazy dog".ToUpper());
}
private static void CreateBarcode(string code)
{
var myBitmap = new Bitmap(500, 50);
var g = Graphics.FromImage(myBitmap);
var jgpEncoder = GetEncoder(ImageFormat.Jpeg);
g.Clear(Color.White);
var strFormat = new StringFormat { Alignment = StringAlignment.Center };
g.DrawString(code, new Font("Free 3 of 9", 50), Brushes.Black, new RectangleF(0, 0, 500, 50), strFormat);
var myEncoder = Encoder.Quality;
var myEncoderParameters = new EncoderParameters(1);
var myEncoderParameter = new EncoderParameter(myEncoder, 100L);
myEncoderParameters.Param[0] = myEncoderParameter;
//MemoryStream memoryStrem = new
myBitmap.Save(@"d:\Barcode.jpg", jgpEncoder, myEncoderParameters);
}
private static ImageCodecInfo GetEncoder(ImageFormat format)
{
var codecs = ImageCodecInfo.GetImageDecoders();
foreach (var codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
}
這正常不過,這條線:g.DrawString(code, new Font("Free 3 of 9", 50), Brushes.Black, new RectangleF(0, 0, 500, 50), strFormat);
,你可以在這裏看到的寬度爲500。現在,如果我指定了一大段文字,我擔心500只是不夠的。有什麼方法可以根據內容使這個寬度動態變化嗎?
'g.MeasureString()'或者類似的東西就足夠了嗎? – dialer
很酷,但我該如何改變這條線? var myBitmap = new Bitmap(500,50);這裏的位圖是500 * 50。這不應該是動態的嗎? – Jack