Как экспортировать фигуру PowerPoint как файл изображения хорошего качества

Я пытаюсь создать несколько сотен базовых изображений, в которых текст формы и цвет фона основаны на текстовой строке.

Для этого я решил использовать PowerPoint, потому что считаю, что стиль изображения достаточно универсален для моей функции. Единственная программа, которую я знаю, как это сделать, - это Adobe Photoshop, однако у меня нет этого программного обеспечения.

У меня есть функция экспорта изображения для работы, однако качество изображения экспортируемой графики ужасное.

Как я могу сделать это с помощью более качественного процессора изображений?

Как можно видеть, у меня есть слайд PowerPoint с текстовым полем для хранения строковых значений (Прямоугольник 5) и моей «формы», которая будет стилизована двумя значениями RGB в текстовой строке. строковое значение имеет следующий формат (разделены вертикальной чертой)

  • Текстовое поле 4. Имя | Прямоугольник со скругленными углами 7.Цвет | Закругленный прямоугольник 3. цвет

введите описание изображения здесь

Используемый код:

Private Sub btnProcess_Click()
Dim i As Integer
Dim StringsArray As Variant
Dim StringItems As Variant
    ' Call getlines to break all lines into separate records in stringsarray
    StringsArray = getlines()
    For i = 0 To UBound(StringsArray)
       StringItems = Split(StringsArray(i), "|")
       ActivePresentation.Slides("Slide1").Shapes("TextBox 4").TextFrame.TextRange.Text = StringItems(0)
       ActivePresentation.Slides("Slide1").Shapes("Rounded Rectangle 7").Fill.ForeColor.RGB = StringItems(1)
       ActivePresentation.Slides("Slide1").Shapes("Rounded Rectangle 3").Fill.ForeColor.RGB = StringItems(2)
       ActivePresentation.Slides("Slide1").Shapes("Group 6").Export "C:\temp\file.emf", ppShapeFormatEMF, 150, 150, ppRelativeToSlide
    Next i
End Sub

Function getlines() As Variant
Dim mylines As Variant
Dim mytext As String
    mytext = ActivePresentation.Slides("Slide1").Shapes("Rectangle 5").TextFrame.TextRange.Text
    mylines = Split(mytext, vbCr)
    getlines = mylines
End Function

person Hightower    schedule 30.10.2012    source источник
comment
Какую версию PPT вы используете? А как вы оцениваете качество ЭМП? Если вы еще этого не сделали, импортируйте его обратно в PowerPoint (вставьте изображение из файла).   -  person Steve Rindsberg    schedule 30.10.2012
comment
Используя Office 2010 - да, хороший вопрос, графика, которую я генерирую (из формы ppt), составляет около 115X70, поэтому они маленькие, возможно, слишком маленькие! ... (это моя проблема, да?) С помощью EMF создаются файлы, которые являются более 1,5 МБ. так что это, вероятно, заняло бы для меня слишком много места.   -  person Hightower    schedule 31.10.2012
comment
Хорошо ... итак, увеличение размера изображения на слайде ppt улучшило качество изображения (конечно же!). Программа, потребляющая изображения, сама изменяет размер каждого изображения, поэтому все работало идеально. ... как мне закрыть вопрос?   -  person Hightower    schedule 31.10.2012
comment
Думаю, вы захотите описать, как вы решили проблему, в ответе на свой вопрос.   -  person Steve Rindsberg    schedule 31.10.2012


Ответы (1)


Объект PPT на основе векторной графики, отображаемый на слайде PowerPoint, не зависит от масштаба, поэтому при любом уровне масштабирования объект не будет казаться искаженным.

Я не мог найти способ вывести объектную графику как настоящий метафайл, даже если формат ppShapeFormatEMF не генерирует векторную EMF, а только гораздо большее изображение.

В конце концов, моим лучшим решением было увеличить базовый размер объекта PPT и экспортировать объект формы с использованием формата ppShapeFormatPNG, тем самым повысив уровень детализации изображения.

Вид очевидно.

введите описание изображения здесь

person Hightower    schedule 01.11.2012
comment
Просто выпейте перед тем, как уложить его спать: вероятно, вы не смогли получить истинную векторную ЭДС, потому что такие эффекты, как мягкие тени, основаны на изображениях, а не на векторах, как обработка краев, поэтому PPT, вероятно, выбрал вывод результат в виде растрового изображения, завернутого в ваш EMF. IIRC, это означает, что вы получаете часть растрового изображения как несжатый BMP, который будет учитывать размер результирующего файла. - person Steve Rindsberg; 02.11.2012
comment
хорошо, да, хороший совет, я постараюсь сделать простую графику, чтобы увидеть, правильно ли создан файл emf .. спасибо за помощь! - person Hightower; 05.11.2012