{"id":"f2e2637a-3cc0-4d5b-bb1a-47689e356b8e","shortId":"Jm49rW","kind":"skill","title":"azure-ai-vision-imageanalysis-java","tagline":"Build image analysis applications with Azure AI Vision SDK for Java. Use when implementing image captioning, OCR text extraction, object detection, tagging, or smart cropping.","description":"# Azure AI Vision Image Analysis SDK for Java\n\nBuild image analysis applications using the Azure AI Vision Image Analysis SDK for Java.\n\n## Installation\n\n```xml\n<dependency>\n    <groupId>com.azure</groupId>\n    <artifactId>azure-ai-vision-imageanalysis</artifactId>\n    <version>1.1.0-beta.1</version>\n</dependency>\n```\n\n## Client Creation\n\n### With API Key\n\n```java\nimport com.azure.ai.vision.imageanalysis.ImageAnalysisClient;\nimport com.azure.ai.vision.imageanalysis.ImageAnalysisClientBuilder;\nimport com.azure.core.credential.KeyCredential;\n\nString endpoint = System.getenv(\"VISION_ENDPOINT\");\nString key = System.getenv(\"VISION_KEY\");\n\nImageAnalysisClient client = new ImageAnalysisClientBuilder()\n    .endpoint(endpoint)\n    .credential(new KeyCredential(key))\n    .buildClient();\n```\n\n### Async Client\n\n```java\nimport com.azure.ai.vision.imageanalysis.ImageAnalysisAsyncClient;\n\nImageAnalysisAsyncClient asyncClient = new ImageAnalysisClientBuilder()\n    .endpoint(endpoint)\n    .credential(new KeyCredential(key))\n    .buildAsyncClient();\n```\n\n### With DefaultAzureCredential\n\n```java\nimport com.azure.identity.DefaultAzureCredentialBuilder;\n\nImageAnalysisClient client = new ImageAnalysisClientBuilder()\n    .endpoint(endpoint)\n    .credential(new DefaultAzureCredentialBuilder().build())\n    .buildClient();\n```\n\n## Visual Features\n\n| Feature | Description |\n|---------|-------------|\n| `CAPTION` | Generate human-readable image description |\n| `DENSE_CAPTIONS` | Captions for up to 10 regions |\n| `READ` | OCR - Extract text from images |\n| `TAGS` | Content tags for objects, scenes, actions |\n| `OBJECTS` | Detect objects with bounding boxes |\n| `SMART_CROPS` | Smart thumbnail regions |\n| `PEOPLE` | Detect people with locations |\n\n## Core Patterns\n\n### Generate Caption\n\n```java\nimport com.azure.ai.vision.imageanalysis.models.*;\nimport com.azure.core.util.BinaryData;\nimport java.io.File;\nimport java.util.Arrays;\n\n// From file\nBinaryData imageData = BinaryData.fromFile(new File(\"image.jpg\").toPath());\n\nImageAnalysisResult result = client.analyze(\n    imageData,\n    Arrays.asList(VisualFeatures.CAPTION),\n    new ImageAnalysisOptions().setGenderNeutralCaption(true));\n\nSystem.out.printf(\"Caption: \\\"%s\\\" (confidence: %.4f)%n\",\n    result.getCaption().getText(),\n    result.getCaption().getConfidence());\n```\n\n### Generate Caption from URL\n\n```java\nImageAnalysisResult result = client.analyzeFromUrl(\n    \"https://example.com/image.jpg\",\n    Arrays.asList(VisualFeatures.CAPTION),\n    new ImageAnalysisOptions().setGenderNeutralCaption(true));\n\nSystem.out.printf(\"Caption: \\\"%s\\\"%n\", result.getCaption().getText());\n```\n\n### Extract Text (OCR)\n\n```java\nImageAnalysisResult result = client.analyze(\n    BinaryData.fromFile(new File(\"document.jpg\").toPath()),\n    Arrays.asList(VisualFeatures.READ),\n    null);\n\nfor (DetectedTextBlock block : result.getRead().getBlocks()) {\n    for (DetectedTextLine line : block.getLines()) {\n        System.out.printf(\"Line: '%s'%n\", line.getText());\n        System.out.printf(\"  Bounding polygon: %s%n\", line.getBoundingPolygon());\n        \n        for (DetectedTextWord word : line.getWords()) {\n            System.out.printf(\"  Word: '%s' (confidence: %.4f)%n\",\n                word.getText(),\n                word.getConfidence());\n        }\n    }\n}\n```\n\n### Detect Objects\n\n```java\nImageAnalysisResult result = client.analyzeFromUrl(\n    imageUrl,\n    Arrays.asList(VisualFeatures.OBJECTS),\n    null);\n\nfor (DetectedObject obj : result.getObjects()) {\n    System.out.printf(\"Object: %s (confidence: %.4f)%n\",\n        obj.getTags().get(0).getName(),\n        obj.getTags().get(0).getConfidence());\n    \n    ImageBoundingBox box = obj.getBoundingBox();\n    System.out.printf(\"  Location: x=%d, y=%d, w=%d, h=%d%n\",\n        box.getX(), box.getY(), box.getWidth(), box.getHeight());\n}\n```\n\n### Get Tags\n\n```java\nImageAnalysisResult result = client.analyzeFromUrl(\n    imageUrl,\n    Arrays.asList(VisualFeatures.TAGS),\n    null);\n\nfor (DetectedTag tag : result.getTags()) {\n    System.out.printf(\"Tag: %s (confidence: %.4f)%n\",\n        tag.getName(),\n        tag.getConfidence());\n}\n```\n\n### Detect People\n\n```java\nImageAnalysisResult result = client.analyzeFromUrl(\n    imageUrl,\n    Arrays.asList(VisualFeatures.PEOPLE),\n    null);\n\nfor (DetectedPerson person : result.getPeople()) {\n    ImageBoundingBox box = person.getBoundingBox();\n    System.out.printf(\"Person at x=%d, y=%d (confidence: %.4f)%n\",\n        box.getX(), box.getY(), person.getConfidence());\n}\n```\n\n### Smart Cropping\n\n```java\nImageAnalysisResult result = client.analyzeFromUrl(\n    imageUrl,\n    Arrays.asList(VisualFeatures.SMART_CROPS),\n    new ImageAnalysisOptions().setSmartCropsAspectRatios(Arrays.asList(1.0, 1.5)));\n\nfor (CropRegion crop : result.getSmartCrops()) {\n    System.out.printf(\"Crop region: aspect=%.2f, x=%d, y=%d, w=%d, h=%d%n\",\n        crop.getAspectRatio(),\n        crop.getBoundingBox().getX(),\n        crop.getBoundingBox().getY(),\n        crop.getBoundingBox().getWidth(),\n        crop.getBoundingBox().getHeight());\n}\n```\n\n### Dense Captions\n\n```java\nImageAnalysisResult result = client.analyzeFromUrl(\n    imageUrl,\n    Arrays.asList(VisualFeatures.DENSE_CAPTIONS),\n    new ImageAnalysisOptions().setGenderNeutralCaption(true));\n\nfor (DenseCaption caption : result.getDenseCaptions()) {\n    System.out.printf(\"Caption: \\\"%s\\\" (confidence: %.4f)%n\",\n        caption.getText(),\n        caption.getConfidence());\n    System.out.printf(\"  Region: x=%d, y=%d, w=%d, h=%d%n\",\n        caption.getBoundingBox().getX(),\n        caption.getBoundingBox().getY(),\n        caption.getBoundingBox().getWidth(),\n        caption.getBoundingBox().getHeight());\n}\n```\n\n### Multiple Features\n\n```java\nImageAnalysisResult result = client.analyzeFromUrl(\n    imageUrl,\n    Arrays.asList(\n        VisualFeatures.CAPTION,\n        VisualFeatures.TAGS,\n        VisualFeatures.OBJECTS,\n        VisualFeatures.READ),\n    new ImageAnalysisOptions()\n        .setGenderNeutralCaption(true)\n        .setLanguage(\"en\"));\n\n// Access all results\nSystem.out.println(\"Caption: \" + result.getCaption().getText());\nSystem.out.println(\"Tags: \" + result.getTags().size());\nSystem.out.println(\"Objects: \" + result.getObjects().size());\nSystem.out.println(\"Text blocks: \" + result.getRead().getBlocks().size());\n```\n\n### Async Analysis\n\n```java\nasyncClient.analyzeFromUrl(\n    imageUrl,\n    Arrays.asList(VisualFeatures.CAPTION),\n    null)\n    .subscribe(\n        result -> System.out.println(\"Caption: \" + result.getCaption().getText()),\n        error -> System.err.println(\"Error: \" + error.getMessage()),\n        () -> System.out.println(\"Complete\")\n    );\n```\n\n## Error Handling\n\n```java\nimport com.azure.core.exception.HttpResponseException;\n\ntry {\n    client.analyzeFromUrl(imageUrl, Arrays.asList(VisualFeatures.CAPTION), null);\n} catch (HttpResponseException e) {\n    System.out.println(\"Status: \" + e.getResponse().getStatusCode());\n    System.out.println(\"Error: \" + e.getMessage());\n}\n```\n\n## Environment Variables\n\n```bash\nVISION_ENDPOINT=https://<resource>.cognitiveservices.azure.com/\nVISION_KEY=<your-api-key>\n```\n\n## Image Requirements\n\n- Formats: JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF, MPO\n- Size: < 20 MB\n- Dimensions: 50x50 to 16000x16000 pixels\n\n## Regional Availability\n\nCaption and Dense Captions require GPU-supported regions. Check [supported regions](https://learn.microsoft.com/azure/ai-services/computer-vision/concept-describe-images-40) before deployment.\n\n## Trigger Phrases\n\n- \"image analysis Java\"\n- \"Azure Vision SDK\"\n- \"image captioning\"\n- \"OCR image text extraction\"\n- \"object detection image\"\n- \"smart crop thumbnail\"\n- \"detect people image\"\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","vision","imageanalysis","java","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents"],"capabilities":["skill","source-sickn33","skill-azure-ai-vision-imageanalysis-java","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-ai-vision-imageanalysis-java","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34928 github stars · SKILL.md body (8,105 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T18:50:28.778Z","embedding":null,"createdAt":"2026-04-18T21:32:04.865Z","updatedAt":"2026-04-24T18:50:28.778Z","lastSeenAt":"2026-04-24T18:50:28.778Z","tsv":"'/azure/ai-services/computer-vision/concept-describe-images-40)':598 '/image.jpg':229 '0':311,315 '1.0':401 '1.1.0':62 '1.5':402 '10':146 '16000x16000':580 '20':575 '2f':411 '4f':213,285,307,353,382,452 '50x50':578 'access':493 'action':160,636 'ai':3,13,33,47,59 'analysi':9,36,42,50,515,604 'api':67 'applic':10,43,630 'arrays.aslist':203,230,254,296,342,364,394,400,437,482,519,542 'ask':674 'aspect':410 'async':97,514 'asynccli':103 'asyncclient.analyzefromurl':517 'avail':583 'azur':2,12,32,46,58,606 'azure-ai-vision-imageanalysi':57 'azure-ai-vision-imageanalysis-java':1 'bash':557 'beta.1':63 'binarydata':192 'binarydata.fromfile':194,249 'block':259,510 'block.getlines':265 'bmp':569 'bound':165,272 'boundari':682 'box':166,318,372 'box.getheight':334 'box.getwidth':333 'box.getx':331,384 'box.gety':332,385 'build':7,40,127 'buildasynccli':112 'buildclient':96,128 'caption':22,133,141,142,180,210,220,237,431,439,446,449,497,525,584,587,610 'caption.getboundingbox':467,469,471,473 'caption.getconfidence':455 'caption.gettext':454 'catch':545 'check':593 'clarif':676 'clear':649 'client':64,87,98,119 'client.analyze':201,248 'client.analyzefromurl':226,294,340,362,392,435,480,540 'cognitiveservices.azure.com':560 'com.azure':56 'com.azure.ai.vision.imageanalysis.imageanalysisasyncclient':101 'com.azure.ai.vision.imageanalysis.imageanalysisclient':71 'com.azure.ai.vision.imageanalysis.imageanalysisclientbuilder':73 'com.azure.ai.vision.imageanalysis.models':183 'com.azure.core.credential.keycredential':75 'com.azure.core.exception.httpresponseexception':538 'com.azure.core.util.binarydata':185 'com.azure.identity.defaultazurecredentialbuilder':117 'complet':533 'confid':212,284,306,352,381,451 'content':155 'core':177 'creation':65 'credenti':92,108,124 'criteria':685 'crop':31,168,388,396,405,408,619 'crop.getaspectratio':421 'crop.getboundingbox':422,424,426,428 'cropregion':404 'd':323,325,327,329,378,380,413,415,417,419,459,461,463,465 'defaultazurecredenti':114 'defaultazurecredentialbuild':126 'dens':140,430,586 'densecapt':445 'deploy':600 'describ':637,653 'descript':132,139 'detect':27,162,173,289,357,616,621 'detectedobject':300 'detectedperson':368 'detectedtag':346 'detectedtextblock':258 'detectedtextlin':263 'detectedtextword':278 'dimens':577 'document.jpg':252 'e':547 'e.getmessage':554 'e.getresponse':550 'en':492 'endpoint':77,80,90,91,106,107,122,123,559 'environ':555,665 'environment-specif':664 'error':528,530,534,553 'error.getmessage':531 'example.com':228 'example.com/image.jpg':227 'execut':632 'expert':670 'extract':25,150,242,614 'featur':130,131,476 'file':191,196,251 'format':565 'generat':134,179,219 'get':310,314,335 'getblock':261,512 'getconfid':218,316 'getheight':429,474 'geti':425,470 'getnam':312 'getstatuscod':551 'gettext':216,241,499,527 'getwidth':427,472 'getx':423,468 'gif':568 'gpu':590 'gpu-support':589 'h':328,418,464 'handl':535 'httpresponseexcept':546 'human':136 'human-read':135 'ico':571 'imag':8,21,35,41,49,138,153,563,603,609,612,617,623 'image.jpg':197 'imageanalysi':5,61 'imageanalysisasynccli':102 'imageanalysiscli':86,118 'imageanalysisclientbuild':89,105,121 'imageanalysisopt':206,233,398,441,488 'imageanalysisresult':199,224,246,292,338,360,390,433,478 'imageboundingbox':317,371 'imagedata':193,202 'imageurl':295,341,363,393,436,481,518,541 'implement':20 'import':70,72,74,100,116,182,184,186,188,537 'input':679 'instal':54 'java':6,17,39,53,69,99,115,181,223,245,291,337,359,389,432,477,516,536,605 'java.io.file':187 'java.util.arrays':189 'jpeg':566 'key':68,82,85,95,111,562 'keycredenti':94,110 'learn.microsoft.com':597 'learn.microsoft.com/azure/ai-services/computer-vision/concept-describe-images-40)':596 'limit':641 'line':264,267 'line.getboundingpolygon':276 'line.gettext':270 'line.getwords':280 'locat':176,321 'match':650 'mb':576 'miss':687 'mpo':573 'multipl':475 'n':214,239,269,275,286,308,330,354,383,420,453,466 'new':88,93,104,109,120,125,195,205,232,250,397,440,487 'null':256,298,344,366,521,544 'obj':301 'obj.getboundingbox':319 'obj.gettags':309,313 'object':26,158,161,163,290,304,505,615 'ocr':23,149,244,611 'output':659 'overview':640 'pattern':178 'peopl':172,174,358,622 'permiss':680 'person':369,375 'person.getboundingbox':373 'person.getconfidence':386 'phrase':602 'pixel':581 'png':567 'polygon':273 'read':148 'readabl':137 'region':147,171,409,457,582,592,595 'requir':564,588,678 'result':200,225,247,293,339,361,391,434,479,495,523 'result.getcaption':215,217,240,498,526 'result.getdensecaptions':447 'result.getobjects':302,506 'result.getpeople':370 'result.getread':260,511 'result.getsmartcrops':406 'result.gettags':348,502 'review':671 'safeti':681 'scene':159 'scope':652 'sdk':15,37,51,608 'setgenderneutralcapt':207,234,442,489 'setlanguag':491 'setsmartcropsaspectratio':399 'size':503,507,513,574 'skill':628,644 'skill-azure-ai-vision-imageanalysis-java' 'smart':30,167,169,387,618 'source-sickn33' 'specif':666 'status':549 'stop':672 'string':76,81 'subscrib':522 'substitut':662 'success':684 'support':591,594 'system.err.println':529 'system.getenv':78,83 'system.out.printf':209,236,266,271,281,303,320,349,374,407,448,456 'system.out.println':496,500,504,508,524,532,548,552 'tag':28,154,156,336,347,350,501 'tag.getconfidence':356 'tag.getname':355 'task':648 'test':668 'text':24,151,243,509,613 'thumbnail':170,620 'tiff':572 'topath':198,253 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':657 'tri':539 'trigger':601 'true':208,235,443,490 'url':222 'use':18,44,626,642 'valid':667 'variabl':556 'vision':4,14,34,48,60,79,84,558,561,607 'visual':129 'visualfeatures.caption':204,231,483,520,543 'visualfeatures.dense':438 'visualfeatures.objects':297,485 'visualfeatures.people':365 'visualfeatures.read':255,486 'visualfeatures.smart':395 'visualfeatures.tags':343,484 'w':326,416,462 'webp':570 'word':279,282 'word.getconfidence':288 'word.gettext':287 'workflow':634 'x':322,377,412,458 'xml':55 'y':324,379,414,460","prices":[{"id":"c0947615-cc50-4a22-b518-5224bb442b42","listingId":"f2e2637a-3cc0-4d5b-bb1a-47689e356b8e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:32:04.865Z"}],"sources":[{"listingId":"f2e2637a-3cc0-4d5b-bb1a-47689e356b8e","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-ai-vision-imageanalysis-java","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-ai-vision-imageanalysis-java","isPrimary":false,"firstSeenAt":"2026-04-18T21:32:04.865Z","lastSeenAt":"2026-04-24T18:50:28.778Z"}],"details":{"listingId":"f2e2637a-3cc0-4d5b-bb1a-47689e356b8e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-ai-vision-imageanalysis-java","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34928,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"895d48545642cc28971571b63e97d87963fe5c24","skill_md_path":"skills/azure-ai-vision-imageanalysis-java/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-ai-vision-imageanalysis-java"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-ai-vision-imageanalysis-java","description":"Build image analysis applications with Azure AI Vision SDK for Java. Use when implementing image captioning, OCR text extraction, object detection, tagging, or smart cropping."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-ai-vision-imageanalysis-java"},"updatedAt":"2026-04-24T18:50:28.778Z"}}