tencent cloud

Feedback

Basic Image Processing

Last updated: 2024-02-01 17:32:35

    Overview

    COS has integrated Cloud Infinite (CI), a one-stop professional multimedia solution that offers the image processing features outlined below. For more information, please see Image Processing Overview.
    Service
    Feature
    Description
    Image Processing-Basic Services
    Proportional scaling, scaling image to target width and height, and more
    Cut (regular cropping), crop (scaling and cropping), iradius (inscribed circle cropping), and scrop (smart cropping)
    Adaptive rotation and common rotation
    Format conversion, GIF optimization, and progressive display
    Changes the quality of images in JPG and WEBP formats
    Blurs images
    Sharpens images
    Watermarking
    Obtaining image information
    Includes EXIF data
    Performs quick format conversion, scaling, and cropping to generate thumbnails
    

    SDK API References

    For the parameters and method descriptions of all the APIs in the SDK, see SDK API Reference.

    Scaling

    Sample code

    String bucket = "examplebucket-1250000000"; // Bucket, formatted as BucketName-APPID
    String cosPath = "exampleobject"; // The location identifier of the object in the bucket, i.e., the object key
    String savePath = context.getExternalCacheDir().toString(); // Local path
    
    GetObjectRequest getObjectRequest = new GetObjectRequest(bucket, cosPath,
    savePath);
    getObjectRequest.addQuery("imageMogr2/thumbnail/!50p", null);
    
    cosXmlService.getObjectAsync(getObjectRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest cosXmlRequest,
    CosXmlResult cosXmlResult) {
    GetObjectResult getObjectResult = (GetObjectResult) cosXmlResult;
    }
    
    // If you use the Kotlin language to call this, please note that the exception in the callback method is nullable; otherwise, the onFail method will not be called back, that is:
    // clientException is of type CosXmlClientException? and serviceException is of type CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    Note:
    For more samples, please visit GitHub.

    Cropping

    The following example shows how to process an in-cloud image and store the processing result in COS.

    Sample code

    String bucket = "examplebucket-1250000000"; // Bucket, formatted as BucketName-APPID
    String cosPath = "exampleobject"; // The location identifier of the object in the bucket, i.e., the object key
    String savePath = context.getExternalCacheDir().toString(); // Local path
    
    GetObjectRequest getObjectRequest = new GetObjectRequest(bucket, cosPath,
    savePath);
    getObjectRequest.addQuery("imageMogr2/iradius/150", null);
    
    cosXmlService.getObjectAsync(getObjectRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest cosXmlRequest,
    CosXmlResult cosXmlResult) {
    GetObjectResult getObjectResult = (GetObjectResult) cosXmlResult;
    }
    
    // If you use the Kotlin language to call this, please note that the exception in the callback method is nullable; otherwise, the onFail method will not be called back, that is:
    // clientException is of type CosXmlClientException? and serviceException is of type CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    Note:
    For more samples, please visit GitHub.

    Rotating

    The following sample shows how to process an image stored in COS upon the download:

    Sample code

    String bucket = "examplebucket-1250000000"; // Bucket, formatted as BucketName-APPID
    String cosPath = "exampleobject"; // The location identifier of the object in the bucket, i.e., the object key
    String savePath = context.getExternalCacheDir().toString(); // Local path
    
    GetObjectRequest getObjectRequest = new GetObjectRequest(bucket, cosPath,
    savePath);
    getObjectRequest.addQuery("imageMogr2/rotate/90", null);
    
    cosXmlService.getObjectAsync(getObjectRequest, new CosXmlResultListener() {
    @Override
    public void onSuccess(CosXmlRequest cosXmlRequest,
    CosXmlResult cosXmlResult) {
    GetObjectResult getObjectResult = (GetObjectResult) cosXmlResult;
    }
    
    // If you use the Kotlin language to call this, please note that the exception in the callback method is nullable; otherwise, the onFail method will not be called back, that is:
    // clientException is of type CosXmlClientException? and serviceException is of type CosXmlServiceException?
    @Override
    public void onFail(CosXmlRequest cosXmlRequest,
    @Nullable CosXmlClientException clientException,
    @Nullable CosXmlServiceException serviceException) {
    if (clientException != null) {
    clientException.printStackTrace();
    } else {
    serviceException.printStackTrace();
    }
    }
    });
    Note:
    For more samples, please visit GitHub.
    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