2017-04-21 1 views
0

VB.NET으로 작성된 VSTO가 있으며 선택한 이미지를 배경으로 최대화하고 싶습니다. 문서에서 이전 모양을 제거하고 AddPicture을 사용하여 새 모양을 추가하라고 알려줍니다. 그러나 이미 이미지 모양이 포함 된 템플릿이 있고 AddPicture은 이미지를 이미 그 모양 중 하나에 넣습니다.이미지를 도형으로 바꾸고 새 것을 추가하지 마십시오.

이미지가 잘못된 모양으로 떨어지는 것을 방지하기 위해 원본 이미지를 크기가 조정 된 이미지로 바꾸고 싶습니다. 다음

dim src as PowerPoint.Shape = PowerPoint.Selection.ShapeRange.Item(1) 
src.Export(file1, PowerPoint.PpShapeFormat.ppShapeFormatPNG) 
dim img as Image = BitMap.FromFile(file1) 

그런 다음 몇 가지 이미지 마법과 :

이 내가 가진 무엇

img.Save(file2, PowerPoint.PpShapeFormat.ppShapeFormatPNG) 

Dim _S As PowerPoint.Slide = ppApp.ActiveWindow.View.Slide 
Dim _P As PowerPoint.Shape = _S.Shapes.AddPicture2(file2, MsoTriState.msoFalse, MsoTriState.msoTrue, 0, 0, _W, _H) 

는하지만 잘못된 템플릿 형태로 이미지를 저장합니다.

새로운 모양을 추가하지 않고 도형의 이미지를 실제로 바꾸는 방법이 있습니까?

+0

시도해 보셨습니까? [this] (https://social.msdn.microsoft.com/Forums/en-US/39eb7cf4-2e85-4010-8e6a-10da20b352f7/replacing-changing-the-pictures-in-powerpoint- presentation? forum = isvvba)? –

+0

정확히 그 요점은 .. 모든 메서드는 이전 셰이프를 삭제하고 이미지 형식의 새 셰이프를 삽입하는 것 같습니다. 그러나 addtional shapeholders가있는 템플릿이 있기 때문에 AddPicture 메서드는 내가 원하지 않는 이미지 중 하나에 이미지를 삽입합니다. 기존 모양 안에 실제 이미지를 바꿀 수있는 방법을 찾고 있습니다. – user3432565

답변

1

이미지를 도형 내부에 삽입 할 수 없으며 일부 경우에만 자리 표시 자 안에 이미지를 삽입 할 수 없으며 특별히 원하지 않는다고 언급했습니다.

이미지를 으로 채우면 모양이되지만 이미지가 왜곡되지 않도록 신경 쓰지 않는 한 이미지와 모양의 종횡비가 일치해야합니다.

제안 : 새 이미지/모양을 추가하기 전에 슬라이드의 모든 모양을 반복하여 자리 표시 자 모양을 찾습니다. 자리 표시 자 모양이 이미지 (내용, 그림 및 클립 아트 자리 표시 자)를 포함 할 수있는 유형 인 경우, 더미 내용 (Content의 경우 텍스트의 몇 문자, 다른 두 경우의 임의의 그림)으로 채 웁니다. 당신의 심상을 추가하십시오; "이미지 가능"자리 표시자가 이미 채워지기 때문에 이미지가 새로운 모양으로 추가됩니다. 그런 다음 더미 콘텐츠를 추가 한 모양을 각각 삭제하십시오. 내용이있는 자리 표시자를 삭제하면 내용이 삭제되고 원래의 빈 자리 표시 자 뒤에 남습니다.

+0

실제로 그것은 내가 지금 수동으로하는 것입니다. :) 하나를 잊어 버리면 지루하고 짜증이납니다. 나는 당신이 이미지를 대체 할 수 있기를 바라고 있었지만 그것은 불가능하다고 생각합니다. 내가 시도해 볼게, shapeholder가 비어 있는지보고, 그것을 채우고, 붙여 넣기/이미지를 삭제하고, 비어있다 placeholders .. – user3432565

+0

괜찮아, 시간이 좀있어 다시 시도해 봤지만 당신의 대답을 다시 읽을 때 나는 뛰지 않을 것이다. 똑같은 문제에요? 더미 콘텐츠를 이미지 가능 모양에 넣으려면 어떻게해야합니까? 그것은 여기서 문제가되는 종류입니다. 만약 내가 할 수 있다면, 나는 내가 원하는 모양으로 내 이미지를 넣을 것이고, 다른 모든 것들에 더미 이미지를 두지는 않을 것이다.) .. 어떤 아이디어? 이런 식의 어지러운 문제와 같은 소리 – user3432565

+0

거짓 컨텐츠를 삽입 한 자리 표시 자에 태그를 추가 할 수 있습니다. oSh.Tags.Add "Dummy", "Y"실제 이미지를 추가 한 후 각 모양을 반복합니다. 슬라이드 (Shapes.Count에서 1 Step -1로 이동) 및 If oSh.Tags ("Dummy") = "Y"Then oSh.Delete –

관련 문제