슬라이드에 이미지 추가

이 페이지에서는 기존 Google Slides 프레젠테이션에 이미지를 추가하는 방법에 대해 설명합니다. 이미지를 추가할 때 공개적으로 액세스할 수 있는 이미지의 URL을 Slides API에 제공합니다.

이미지 정보

Slides API에서 이미지는 페이지 요소의 한 유형입니다. 여느 페이지 요소와 마찬가지로 PageElementsizetransform 속성을 사용하여 이미지의 시각적 크기 및 위치를 지정할 수 있습니다. 이미지의 크기 및 위치를 정확하게 지정하는 방법에 대한 자세한 내용은 도형 크기 및 위치 지정을 참조하세요.

비공개 이미지

공개적으로 액세스할 수 있는 URL을 통해 사용할 수 없는 이미지를 배치하려면 Google Drive에 복사본을 임시로 호스팅할 수 있습니다.

  • 이미지를 Google Drive에 업로드합니다.
  • Drive에서 이미지를 검색할 권한 있는 URL을 생성합니다.
  • 이미지를 프레젠테이션에 추가합니다.

이미지가 프레젠테이션에 나타난 후에 Google Drive에서 복사본을 삭제할 수 있습니다.

예시

다음 샘플은 이미지를 슬라이드에 추가할 수 있는 방법을 보여주며 Google Drive API를 사용하여 이미지를 임시로 호스팅합니다.

Java

// Temporarily upload a local image file to Drive, in order to to obtain a URL
// for the image. Alternatively, you can provide the Slides service a URL of
// an already hosted image.
File file = new File();
file.setName("My Image File");
FileContent mediaContent = new FileContent(imageMimeType, new java.io.File(imageFilePath));
File uploadedFile = driveService.files().create(file, mediaContent).execute();
String fileId = uploadedFile.getId();

// Obtain a URL for the image.
GenericUrl getFileUrlBuilder = driveService.files().get(fileId).buildHttpRequestUrl();
String imageUrl = getFileUrlBuilder
        .set("access_token", credential.getAccessToken())
        .set("alt", "media").build();

// Create a new image, using a supplied object ID, with content downloaded from imageUrl.
List<Request> requests = new ArrayList<>();
String imageId = "MyImageId_01";
Dimension emu4M = new Dimension().setMagnitude(4000000.0).setUnit("EMU");
requests.add(new Request()
        .setCreateImage(new CreateImageRequest()
                .setObjectId(imageId)
                .setUrl(imageUrl)
                .setElementProperties(new PageElementProperties()
                        .setPageObjectId(slideId)
                        .setSize(new Size()
                                .setHeight(emu4M)
                                .setWidth(emu4M))
                        .setTransform(new AffineTransform()
                                .setScaleX(1.0)
                                .setScaleY(1.0)
                                .setTranslateX(100000.0)
                                .setTranslateY(100000.0)
                                .setUnit("EMU")))));

// Execute the request.
BatchUpdatePresentationRequest body =
        new BatchUpdatePresentationRequest().setRequests(requests);
BatchUpdatePresentationResponse response =
        slidesService.presentations().batchUpdate(presentationId, body).execute();
CreateImageResponse createImageResponse = response.getReplies().get(0).getCreateImage();
System.out.println("Created image with ID: " + createImageResponse.getObjectId());

// Remove the temporary image file from Drive.
driveService.files().delete(fileId).execute();

Python

# Temporarily upload a local image file to Drive, in order to obtain a URL
# for the image. Alternatively, you can provide the Slides servcie a URL of
# an already hosted image.
upload = drive_service.files().create(
    body={'name': 'My Image File', 'mimeType': image_mimetype},
    media_body=image_file_path).execute()
file_id = upload.get('id')

# Obtain a URL for the image.
image_url = '%s&access_token=%s' % (
    drive_service.files().get_media(fileId=file_id).uri, self.credentials.access_token)

# Create a new image, using the supplied object ID, with content downloaded from image_url.
requests = []
image_id = 'MyImage_01'
emu4M = {
    'magnitude': 4000000,
    'unit': 'EMU'
}
requests.append({
    'createImage': {
        'objectId': image_id,
        'url': image_url,
        'elementProperties': {
            'pageObjectId': page_id,
            'size': {
                'height': emu4M,
                'width': emu4M
            },
            'transform': {
                'scaleX': 1,
                'scaleY': 1,
                'translateX': 100000,
                'translateY': 100000,
                'unit': 'EMU'
            }
        }
    }
})

# Execute the request.
body = {
    'requests': requests
}
response = slides_service.presentations().batchUpdate(presentationId=presentation_id,
                                                      body=body).execute()
create_image_response = response.get('replies')[0].get('createImage')
print('Created image with ID: {0}'.format(create_image_response.get('objectId')))

# Remove the temporary image file from Drive.
drive_service.files().delete(fileId=file_id).execute()

PHP

// Temporarily upload a local image file to Drive, in order to obtain a URL
// for the image. Alternatively, you can provide the Slides servcie a URL of
// an already hosted image.
$file = new Google_Service_Drive_DriveFile(array(
  'name' => 'My Image File',
  'mimeType' => $imageMimeType
));
$params = array(
  'data' => file_get_contents($imageFilePath),
  'uploadType' => 'media',
);
$upload = $driveService->files->create($file, $params);
$fileId = $upload->id;

// Obtain a URL for the image.
$token = $driveService->getClient()->fetchAccessTokenWithAssertion()['access_token'];
$endPoint = 'https://www.googleapis.com/drive/v3/files';
$imageUrl = sprintf('%s/%s?alt=media&access_token=%s', $endPoint, $fileId, $token);

// Create a new image, using the supplied object ID, with content downloaded from image_url.
$imageId = 'MyImage_01';
$emu4M = array('magnitude' => 4000000, 'unit' => 'EMU');
$requests = array();
$requests[] = new Google_Service_Slides_Request(array(
  'createImage' => array (
    'objectId' => $imageId,
    'url' => $imageUrl,
    'elementProperties' => array(
      'pageObjectId' => $pageId,
      'size' => array(
        'height' => $emu4M,
        'width' => $emu4M
      ),
      'transform' => array(
        'scaleX' => 1,
        'scaleY' => 1,
        'translateX' => 100000,
        'translateY' => 100000,
        'unit' => 'EMU'
      )
    )
  )
));

// Execute the request.
$batchUpdateRequest = new Google_Service_Slides_BatchUpdatePresentationRequest(array(
  'requests' => $requests
));
$response = $slidesService->presentations->batchUpdate($presentationId, $batchUpdateRequest);
$createImageResponse = $response->getReplies()[0]->getCreateImage();
printf("Created image with ID: %s\n", $createImageResponse->getObjectId());

// Remove the temporary image file from Drive.
$driveService->files->delete($fileId);

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.