.NET. Как обновить загрузку файла .tiff с .NET 4.5 до 8?C#

Место общения программистов C#
Ответить
Anonymous
 .NET. Как обновить загрузку файла .tiff с .NET 4.5 до 8?

Сообщение Anonymous »

Сейчас я работаю над переносом проекта с .NET 4.5 на 8. Одной из ключевых функций старого проекта является возможность загрузки штрих-кода заданной строки:
Старая функциональность

Код: Выделить всё

    public FileResult DownloadBarcode(string BarCodeString, string CampaignName, string StartDate)
{
try
{
using (WebClient wc = new WebClient())
{
var byteArr = wc.DownloadData(string.Format(
https://foo.InternalStringToBitmapConverter,
BarCodeString));
string fileName = string.Format("{0}-{1}.tiff",
CampaignName.Replace("#", "").Replace(" ", ""),
StartDate.Replace("/", "-").Substring(0, StartDate.IndexOf(" ")));
return File(byteArr, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}

}
catch (System.Net.WebException ex)
{
log.Error("Error retrieving barcode from service, error: " + ex.Message, ex);
return null;
}
}
Пояснение: foo.InternalStringToBitmapConverter — это служба, преобразующая строку в массив растровых изображений. Я не думаю, что мне это понадобится с функциональностью .NET 8.
Теперь, когда я пытаюсь преобразовать это в 8.0, VS сообщает мне, что WebClient устарел и нужно использовать HttpClient. Я пытался реализовать ту же функциональность, но не могу найти способ перенести этот код на версию 8.0.
Чтобы это работало, мне нужно:
Функция, которая принимает входные данные строку (что будет похоже на «AA123456789»), преобразует строку в растровую карту и сохраняет полученный штрих-код в формате .tiff. файл. Затем этот файл необходимо отправить обратно в браузер.
Ранее я добился этого, загрузив BMP, но мне нужно, чтобы файл был в формате .tiff. Я не нашел способа преобразовать этот код в файл для загрузки в формате tiff.

Код: Выделить всё

  public ActionResult DownloadBarcode(string item)
{
var bitmapWriter = new BarcodeWriter
{
Format = BarcodeFormat.CODE_128, // change barcode type as needed
Options = new ZXing.Common.EncodingOptions
{
Height = 150,
Width = 1158,
}
};

var height = 150; // These sizes must be stagnant
var width = 1158;

var bitmap = bitmapWriter.Write(item.ToString());

Bitmap barcodeImage = new Bitmap(width, height, PixelFormat.Format32bppRgb);

for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
int i = ((y * width) + x);

Color color = Color.FromArgb(0, bitmap.Pixels[i].Red, bitmap.Pixels[i].Green, bitmap.Pixels[i].Blue);
barcodeImage.SetPixel(x, y, color);
}
}

var now = DateTime.Now;

MemoryStream stream = new MemoryStream();
barcodeImage.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
Byte[] bytes = stream.ToArray();

return File(bytes, "image/bmp", "AA" + item + ".Bmp");
}
Спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/797 ... t-4-5-to-8
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»