В продолжение предыдущего поста SO здесь Я перешел от возможности убрать прозрачность из преобразования PDF к невозможности настроить цвет фона преобразования. Я перепробовал все, что смог найти на ImageMagick.NET github docs . Мне нужно убедиться, что ЛЮБОЕ изображение, которое передается через этот программный пакет, имеет непрозрачный белый фон.
/// <summary>
/// Write image data from a pdf file to a bitmap file
/// </summary>
/// <param name="imgData"></param>
private static void convertPdfToBmp(ImageData imgData)
{
MagickReadSettings settings = new MagickReadSettings();
// Settings the density to 600 dpi will create an image with a better quality
settings.Density = new Density(600);
using (MagickImageCollection images = new MagickImageCollection())
{
// Add all the pages of the pdf file to the collection
images.Read(imgData.pdfFilePath, settings);
// Create new image that appends all the pages horizontally
using (IMagickImage image = images.AppendVertically())
{
// Remove the transparency layers and color the background white
image.Alpha(AlphaOption.Remove);
int aval = image.Settings.BackgroundColor.A = 0;
int rval = image.Settings.BackgroundColor.R = 0;
int bval = image.Settings.BackgroundColor.G = 0;
int gval = image.Settings.BackgroundColor.B = 0;
// Convert the image to a bitmap
image.Format = MagickFormat.Bmp;
// Delete any old file
if (File.Exists(imgData.bmpFilePath))
{
File.Delete(imgData.bmpFilePath);
}
// Save result as a bmp
image.Write(imgData.bmpFilePath);
}
}
}
В приведенном выше коде, если я установлю какой-либо из 4 каналов image.Settings.BackgroundColor
на другой цвет, это не повлияет на изображение. Если я использую image.BackgroundColor
, это никак не повлияет на изображение. Чего мне не хватает?
Примечание: в приведенном выше коде я устанавливаю цвета на черный, чтобы убедиться, что код работает. Я пробовал и другие цвета для хихиканья.