tencent cloud


Getting Started

Last updated: 2024-03-04 10:30:23


    To make it easier and faster for you to use CI's basic image processing features and CDN's image delivery features, we provide the following five modules for your choice as needed:
    cloud-infinite (default module)
    This module contains CI's basic image processing operations and supports freely combining various operations to build URLs for network requests.
    This module uses the CIImageLoadRequest instance to request online images and return image data.
    This module decodes and displays general images and TPG images.
    This module decodes and displays general images and AVIF images.
    This module depends on the glide and cloud-infinite modules to provide CI's basic image processing features.
    For more information on TPG, see TPG Compression.


    For the SDK source code and demo, see here.
    For SDK APIs and parameters, see Scaling.
    For SDK release notes, see Changelog.


    1. You need an Android app, which can be one of your existing projects or a new one.
    2. Make sure that the application is built by using an SDK running on Android 4.0.3 or later.

    Step 1. Install the cloud-infinite SDK

    The cloud-infinite module has the following main features:
    It contains CI's basic image processing operations, such as image scaling, cropping, rotation, format conversion, quality change, Gaussian blur, sharpening, watermarking, and image theme color acquisition.
    It encapsulates each operation as a CITransform and supports freely combining basic operations to build URLs for direct network requests.
    Use Gradle for integration
    As the Bintray repository is no longer available, CI's SDKs have been migrated to Maven Central. The import path is different, so you need to use the new import path during the update.
    Add the following code to the project-level build.gradle file (usually in the root directory):
    repositories {
    // Add the following line
    Add the following to the build.gradle of your app or other class libraries:
    implementation 'com.qcloud.cos:cloud-infinite:1.2.1'

    Step 2. Start using

    Build the CIImageLoadRequest instance

    1. When using CloudInfinite to build a CI-enabled image URL, you first need to instantiate the CloudInfinite class.
    CloudInfinite cloudInfinite = new CloudInfinite();
    2. Instantiate the image transformation class CITransformation and set related operations. The following takes TPG as an example. For more features, see Basic Image Processing.
    CITransformation transform = new CITransformation();
    transform.format(CIImageFormat.TPG, CIImageLoadOptions.LoadTypeUrlFooter)
    3. Use the CloudInfinite instance to build a CI-enabled image URL.
    Build synchronously
    CIImageLoadRequest request = cloudInfinite.requestWithBaseUrlSync(objectUrl, transform);
    // Image URL
    URL imageURL = request.getUrl();
    // Header parameter
    Map<String, List<String>> heaers = request.getHeaders();
    Build asynchronously
    cloudInfinite.requestWithBaseUrl(objectUrl, transform, new CloudInfiniteCallback() {
    public void onImageLoadRequest(@NonNull final CIImageLoadRequest request) {
    // Image URL
    URL imageURL = request.getUrl();
    // Header parameter
    Map<String, List<String>> heaers = request.getHeaders();
    The header parameter of CIImageLoadRequest is valid only when image format conversion is performed and options is set to LoadTypeAcceptHeader.

    Step 3. Load an image

    After successfully building the CIImageLoadRequest instance, use the cloud-infinite-loader SDK to load an image.
    1. Integrate the cloud-infinite-loader SDK.
    implementation 'com.qcloud.cos:cloud-infinite-loader:1.2.1'
    2. Add the INTERNET permission.
    <uses-permission android:name="android.permission.INTERNET" />
    3. Load the image.
    Directly load ImageView
    CIImageLoader ciImageLoader = new CIImageLoader();
    ciImageLoader.display(request, imageview);
    Request image data
    CIImageLoader ciImageLoader = new CIImageLoader();
    ciImageLoader.loadData(request, new CIImageLoadDataCallBack() {
    public void onLoadData(byte[] bytes) {
    // Use the pseudocode to set bytes data for the imageview
    public void onFailure(QCloudClientException clientException, QCloudServiceException serviceException) {
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support