Convertendo um <V: shape> / Embed para um w: drawing

eu tenho umV:Shape que estou assumindo veio da conversão de um arquivo. Doc para um arquivo. Docx, mas no código que eu escrevi, estou querendo umDocumentFormat.OpenXml.Drawing.Pictures.Picture.

Existe alguma maneira de converter programaticamente para umPicture?

O trecho que estou usando é:

 foreach (var item in value)
 {
   if (!item.Descendants<Picture>().Any()) //pictures are processed differently - they're an absolute s**t storm to code...
   {
     p.Append(item.CloneNode(true));
   }
   else
   {
     p.Append(CreateImageRun(source, item, target, f));
   }
 }

public Run CreateImageRun(WordprocessingDocument sourceDoc, Run sourceRun, WordprocessingDocument target, FooterPart footerPart)
{
  ImagePart newPart = footerPart.AddImagePart(ImagePartType.Png);

  ImageData shape = sourceRun.Descendants<ImageData>().FirstOrDefault();

  ImagePart p = sourceDoc.MainDocumentPart.GetPartById(shape.RelationshipId) as ImagePart;

  Bitmap image = new Bitmap(p.GetStream()); 

  using (Stream s = p.GetStream())
  {
    s.Position = 0;
    newPart.FeedData(s);
  }

  string partId = footerPart.GetIdOfPart(newPart);

  Drawing newImage = CreateImage(partId);

  return new Run(newImage);
}

private Drawing CreateImage(string relationshipId)
{
  // Define the reference of the image.
  return new Drawing(
                     new DW.Inline(
                         new DW.Extent() { Cx = 990000L, Cy = 792000L },
                         new DW.EffectExtent()
                         {
                             LeftEdge = 0L,
                             TopEdge = 0L,
                             RightEdge = 0L,
                             BottomEdge = 0L
                         },
                         new DW.DocProperties()
                         {
                             Id = (UInt32Value)1U,
                             Name = "Picture 1"
                         },
                         new DW.NonVisualGraphicFrameDrawingProperties(
                             new A.GraphicFrameLocks() { NoChangeAspect = true }),
                         new A.Graphic(
                             new A.GraphicData(
                                 new PIC.Picture(
                                     new PIC.NonVisualPictureProperties(
                                         new PIC.NonVisualDrawingProperties()
                                         {
                                             Id = (UInt32Value)0U,
                                             Name = "New Bitmap Image.jpg"
                                         },
                                         new PIC.NonVisualPictureDrawingProperties()),
                                     new PIC.BlipFill(
                                         new A.Blip(
                                             new A.BlipExtensionList(
                                                 new A.BlipExtension()
                                                 {
                                                     Uri =
                                                       "{28A0092B-C50C-407E-A947-70E740481C1C}"
                                                 })
                                         )
                                         {
                                             Embed = relationshipId,
                                             CompressionState =
                                             A.BlipCompressionValues.Print
                                         },
                                         new A.Stretch(
                                             new A.FillRectangle())),
                                     new PIC.ShapeProperties(
                                         new A.Transform2D(
                                             new A.Offset() { X = 0L, Y = 0L },
                                             new A.Extents() { Cx = 990000L, Cy = 792000L }),
                                         new A.PresetGeometry(
                                             new A.AdjustValueList()
                                         ) { Preset = A.ShapeTypeValues.Rectangle }))
                             ) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" })
                     )
                     {
                         DistanceFromTop = (UInt32Value)0U,
                         DistanceFromBottom = (UInt32Value)0U,
                         DistanceFromLeft = (UInt32Value)0U,
                         DistanceFromRight = (UInt32Value)0U,
                         EditId = "50D07946"
                     });
        }

Contexto de código completo está em uma questão diferente aqui:

Criar um ImagePart não está salvando o relacionamento no OpenXML

questionAnswers(1)

yourAnswerToTheQuestion