Cloudmersive Edit API

Edit operations of the Cloudmersive Image Recognition and Processing API — 14 operation(s) served from https://api.cloudmersive.com and authenticated with the Apikey header. One Cloudmersive API key grants access to every API in the portfolio.

Operations 14

POST /image/edit/contrast/{gamma}/adaptive Adaptively adjust the contrast of the image to be more appealing and easy to see #
POST /image/edit/rotate/{degrees}/angle Rotate an image any number of degrees #
POST /image/edit/crop/rectangle/{left}/{top}/{width}/{height} Crop an image to a rectangular area #
POST /image/edit/crop/circle/{left}/{top}/{radius} Crop an image to an circular area #
POST /image/edit/invert Invert, negate the colors in the image #
POST /image/edit/remove-transparency Remove transparency from the image #
POST /image/edit/remove-exif Remove EXIF data from the image #
POST /image/edit/auto-orient/remove-exif Normalizes image rotation and removes EXIF rotation data #
POST /image/edit/drop-shadow/{X}/{Y}/{sigma}/{opacity} Add a customizeable drop shadow to an image #
POST /image/edit/composite/{location} Composite two images together #
POST /image/edit/composite/precise Composite two images together precisely #
POST /image/edit/draw/text Draw text onto an image #
POST /image/edit/draw/polygon Draw a polygon onto an image #
POST /image/edit/draw/rectangle Draw a rectangle onto an image #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cloudmersive:cloudmersive-edit-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cloudmersive-edit-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v1
  title: imageapi Edit API
  description: Image Recognition and Processing APIs let you use Artificial Intelligence and Machine Learning to recognize and process images, and also perform useful image modification operations.
servers:
- url: http://localhost
tags:
- name: Edit
paths:
  /image/edit/contrast/{gamma}/adaptive:
    post:
      tags:
      - Edit
      summary: Adaptively adjust the contrast of the image to be more appealing and easy to see
      description: Uses Gamma to adjust the contrast adaptively the way the human eye sees the world. Results significantly improve the viewability and visual appeal of the image.
      operationId: Edit_ContrastAdaptive
      parameters:
      - name: gamma
        in: path
        description: Gamma value to adjust the contrast in the image.  Recommended value is 2.0.  Values between 0.0 and 1.0 will reduce contrast, while values above 1.0 will increase contrast.
        required: true
        schema:
          type: number
          format: double
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imageFile:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
              required:
              - imageFile
  /image/edit/rotate/{degrees}/angle:
    post:
      tags:
      - Edit
      summary: Rotate an image any number of degrees
      description: Rotates an image by an arbitrary number of degrees
      operationId: Edit_Rotate
      parameters:
      - name: degrees
        in: path
        description: Degrees to rotate the image; values range from 0.0 to 360.0.
        required: true
        schema:
          type: number
          format: double
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imageFile:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
              required:
              - imageFile
  /image/edit/crop/rectangle/{left}/{top}/{width}/{height}:
    post:
      tags:
      - Edit
      summary: Crop an image to a rectangular area
      description: Crop an image to a target rectangular area
      operationId: Edit_CropRectangle
      parameters:
      - name: left
        in: path
        description: The left edge of the rectangular crop area in pixels (X).
        required: true
        schema:
          type: integer
          format: int32
      - name: top
        in: path
        description: The top edge of the rectangular crop area in pixels (Y).
        required: true
        schema:
          type: integer
          format: int32
      - name: width
        in: path
        description: The width of the rectangular crop area in pixels.
        required: true
        schema:
          type: integer
          format: int32
      - name: height
        in: path
        description: The height of the rectangular crop area in pixels.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imageFile:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
              required:
              - imageFile
  /image/edit/crop/circle/{left}/{top}/{radius}:
    post:
      tags:
      - Edit
      summary: Crop an image to an circular area
      description: Crop an image to a target circular area
      operationId: Edit_CropCircle
      parameters:
      - name: left
        in: path
        description: The left edge of the circular crop area in pixels (X).
        required: true
        schema:
          type: integer
          format: int32
      - name: top
        in: path
        description: The top edge of the circular crop area in pixels (Y).
        required: true
        schema:
          type: integer
          format: int32
      - name: radius
        in: path
        description: The radius of the circular crop area in pixels.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imageFile:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
              required:
              - imageFile
  /image/edit/invert:
    post:
      tags:
      - Edit
      summary: Invert, negate the colors in the image
      description: Inverts (negates) all of the colors in the image. If the image contains transparency, the transparency will first be removed prior to inverting the image.
      operationId: Edit_Invert
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imageFile:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
              required:
              - imageFile
  /image/edit/remove-transparency:
    post:
      tags:
      - Edit
      summary: Remove transparency from the image
      description: Removes any active transparency in the image. Effectively renders the image at the same resolution, in the same file format, over a white background, thus removing transparency.
      operationId: Edit_RemoveTransparency
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imageFile:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
              required:
              - imageFile
  /image/edit/remove-exif:
    post:
      tags:
      - Edit
      summary: Remove EXIF data from the image
      description: Removes any EXIF data and profiles .
      operationId: Edit_RemoveExifData
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imageFile:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
              required:
              - imageFile
  /image/edit/auto-orient/remove-exif:
    post:
      tags:
      - Edit
      summary: Normalizes image rotation and removes EXIF rotation data
      description: Automatically orients the input image based on EXIF information and then removes the EXIF information. EXIF is an additional set of information stored in some images taken with cell phone cameras based on the orientation of the camera. By normalizing rotation and removing EXIF data these images become much easier to process.
      operationId: Edit_AutoOrient
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imageFile:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
              required:
              - imageFile
  /image/edit/drop-shadow/{X}/{Y}/{sigma}/{opacity}:
    post:
      tags:
      - Edit
      summary: Add a customizeable drop shadow to an image
      description: Add a customizeable drop shadow to the image
      operationId: Edit_DropShadow
      parameters:
      - name: X
        in: path
        description: Horizontal (X) offset of the drop shadow
        required: true
        schema:
          type: integer
          format: int32
      - name: Y
        in: path
        description: Vertical (Y) offset of the drop shadow
        required: true
        schema:
          type: integer
          format: int32
      - name: sigma
        in: path
        description: Sigma (blur distance) of the drop shadow
        required: true
        schema:
          type: integer
          format: int32
      - name: opacity
        in: path
        description: Opacity of the drop shadow; 0 is 0% and 100 is 100%
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imageFile:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
              required:
              - imageFile
  /image/edit/composite/{location}:
    post:
      tags:
      - Edit
      summary: Composite two images together
      description: Composites two input images together; a layered image onto a base image. The first image you input is the base image. The second image (the layered image) will be composited on top of this base image. Supports PNG transparency. To control padding you can include transparent pixels at the border(s) of your layered images as appropriate.
      operationId: Edit_CompositeBasic
      parameters:
      - name: location
        in: path
        description: 'Location to composite the layered images; possible values are: "center", "top-left", "top-center", "top-right", "center-left", "center-right", "bottom-left", "bottom-center", "bottom-right"'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                baseImage:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
                layeredImage:
                  type: string
                  description: Image to layer on top of the base image.
                  format: binary
              required:
              - baseImage
              - layeredImage
  /image/edit/composite/precise:
    post:
      tags:
      - Edit
      summary: Composite two images together precisely
      description: Composites two input images together; a layered image onto a base image. Position is based on distance in pixels from each side. The first image you input is the base image. The second image (the layered image) will be composited on top of this base image. Supports PNG transparency. To control padding you can include transparent pixels at the border(s) of your layered images as appropriate. Providing multiple parameters in a single axis (for example top and bottom) is not recommended, since only one of the parameters will be used per axis.
      operationId: Edit_CompositePrecise
      parameters:
      - name: top
        in: header
        description: Optional; Desired distance in pixels from the top of the base image to the top of the layered image.
        required: false
        schema:
          type: integer
      - name: bottom
        in: header
        description: Optional; Desired distance in pixels from the bottom of the base image to the bottom of the layered image.
        required: false
        schema:
          type: integer
      - name: left
        in: header
        description: Optional; Desired distance in pixels from the left side of the base image to the left side of the layered image.
        required: false
        schema:
          type: integer
      - name: right
        in: header
        description: Optional; Desired distance in pixels from the right side of the base image to the right side of the layered image.
        required: false
        schema:
          type: integer
      - name: width
        in: header
        description: Optional; Desired width of the layered image in pixels. Leave height empty or 0 to automatically scale the image proportionally.
        required: false
        schema:
          type: integer
      - name: height
        in: header
        description: Optional; Desired height of the layered image in pixels. Leave width empty or 0 to automatically scale the image proportionally.
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                baseImage:
                  type: string
                  description: Image file to perform the operation on.  Common file formats such as PNG, JPEG are supported.
                  format: binary
                layeredImage:
                  type: string
                  description: Image to layer on top of the base image.
                  format: binary
              required:
              - baseImage
              - layeredImage
  /image/edit/draw/text:
    post:
      tags:
      - Edit
      summary: Draw text onto an image
      description: Draw one or more pieces of text, with customized visuals, onto an image
      operationId: Edit_DrawText
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DrawTextRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/DrawTextRequest'
          application/xml:
            schema:
              $ref: '#/components/schemas/DrawTextRequest'
          text/xml:
            schema:
              $ref: '#/components/schemas/DrawTextRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DrawTextRequest'
        description: Draw text parameters
        required: true
  /image/edit/draw/polygon:
    post:
      tags:
      - Edit
      summary: Draw a polygon onto an image
      description: Draw one or more polygons, with customized visuals, onto an image
      operationId: Edit_DrawPolygon
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DrawPolygonRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/DrawPolygonRequest'
          application/xml:
            schema:
              $ref: '#/components/schemas/DrawPolygonRequest'
          text/xml:
            schema:
              $ref: '#/components/schemas/DrawPolygonRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DrawPolygonRequest'
        description: Polygon drawing request parameters
        required: true
  /image/edit/draw/rectangle:
    post:
      tags:
      - Edit
      summary: Draw a rectangle onto an image
      description: Draw one or more rectangles, with customized visuals, onto an image
      operationId: Edit_DrawRectangle
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                format: byte
                type: string
      security:
      - Apikey: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DrawRectangleRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/DrawRectangleRequest'
          application/xml:
            schema:
              $ref: '#/components/schemas/DrawRectangleRequest'
          text/xml:
            schema:
              $ref: '#/components/schemas/DrawRectangleRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DrawRectangleRequest'
        description: Draw rectangle parameters
        required: true
components:
  schemas:
    PolygonPoint:
      description: One point in a polygon
      type: object
      properties:
        X:
          format: double
          description: X location in pixels of this point in the polygon
          type: number
        Y:
          format: double
          description: Y location in pixels of this point in the polygon
          type: number
    DrawPolygonRequest:
      description: Request to draw one or more polygons on a base image
      type: object
      properties:
        BaseImageBytes:
          format: byte
          description: Image to draw polygons on, in bytes.  You can also use the BaseImageUrl instead to supply image input as a URL
          type: string
        BaseImageUrl:
          description: Image to draw polygons on, as an HTTP or HTTPS fully-qualified URL
          type: string
        PolygonsToDraw:
          description: Polygons to draw on the image.  Polygons are drawn in index order.
          type: array
          items:
            $ref: '#/components/schemas/DrawPolygonInstance'
    DrawRectangleRequest:
      description: Request to draw one or more rectangles on a base image
      type: object
      properties:
        BaseImageBytes:
          format: byte
          description: Image to draw rectangles on, in bytes.  You can also use the BaseImageUrl instead to supply image input as a URL
          type: string
        BaseImageUrl:
          description: Image to draw rectangles on, as an HTTP or HTTPS fully-qualified URL
          type: string
        RectanglesToDraw:
          description: Rectangles to draw on the image.  Rectangles are drawn in index order.
          type: array
          items:
            $ref: '#/components/schemas/DrawRectangleInstance'
    DrawTextRequest:
      description: Request to draw one or more pieces of text onto an image
      type: object
      properties:
        BaseImageBytes:
          format: byte
          description: Image to draw text on, in bytes.  You can also use the BaseImageUrl instead to supply image input as a URL
          type: string
        BaseImageUrl:
          description: Image to draw text on, as an HTTP or HTTPS fully-qualified URL
          type: string
        TextToDraw:
          description: One or more pieces of text to draw onto the image
          type: array
          items:
            $ref: '#/components/schemas/DrawTextInstance'
    DrawRectangleInstance:
      description: Rectangle instance to draw on an image
      type: object
      properties:
        BorderColor:
          description: 'Border Color to use - can be a hex value (with #) or HTML common color name.  Transparent colors are supported.'
          type: string
        BorderWidth:
          format: double
          description: Width in pixels of the border.  Pass in 0 to draw a rectangle with no border
          type: number
        FillColor:
          description: 'Fill Color to use - can be a hex value (with #) or HTML common color name.  Transparent colors are supported.  Leave blank to not fill the rectangle.'
          type: string
        X:
          format: double
          description: Pixel location of the left edge of the rectangle location
          type: number
        Y:
          format: double
          description: Pixel location of the top edge of the rectangle location
          type: number
        Width:
          format: double
          description: Width in pixels of the rectangle
          type: number
        Height:
          format: double
          description: Height in pixels of the rectangle
          type: number
    DrawTextInstance:
      description: Text instance to draw on an image
      type: object
      properties:
        Text:
          description: Text string to draw
          type: string
        FontFamilyName:
          description: Font Family to use.  Leave blank to default to "Arial".  Supported fonts including Arial, Calibri, Cambria, Candara, Consolas, Constantia, Corbel, Courier New, Courier Regular, Georgia, Impact Regular, Lucida, Modern Regular, Tahoma, Times New Roman, Verdana
          type: string
        FontSize:
          format: double
          description: Font size to use.
          type: number
        Color:
          description: 'Color to use - can be a hex value (with #) or HTML common color name'
          type: string
        X:
          format: double
          description: Pixel location of the left edge of the text location
          type: number
        Y:
          format: double
          description: Pixel location of the top edge of the text location
          type: number
        Width:
          format: double
          description: Width in pixels of the text box to draw the text in; text will wrap inside this box
          type: number
        Height:
          format: double
          description: Height in pixels of the text box to draw the text in; text will wrap inside this box
          type: number
    DrawPolygonInstance:
      description: Polygon instance to draw on an image
      type: object
      properties:
        BorderColor:
          description: 'Border Color to use - can be a hex value (with #) or HTML common color name.  Transparent colors are supported.'
          type: string
        BorderWidth:
          format: double
          description: Width in pixels of the border.  Pass in 0 to draw a polygon with no border
          type: number
        FillColor:
          description: 'Fill Color to use - can be a hex value (with #) or HTML common color name.  Transparent colors are supported.  Leave blank to not fill the polygon.'
          type: string
        Points:
          description: Points (vertices) which comprise the polygon; valid polygons must have at least 3 points
          type: array
          items:
            $ref: '#/components/schemas/PolygonPoint'
  securitySchemes:
    Apikey:
      type: apiKey
      description: API Key Authentication
      name: Apikey
      in: header
x-provenance:
  method: harvested
  publisher: Cloudmersive
  source: https://api.cloudmersive.com/image/docs/v1/swagger
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)