Unicode C
Unicode C
AI Modify Existing Image with Text Prompt
See more AI Examples
Uses an AI text prompt and uploaded image data to modify an existing image and receive the modified output.Chilkat Unicode C Downloads
#include <C_CkBinDataW.h>
#include <C_CkAiW.h>
#include <C_CkJsonObjectW.h>
void ChilkatSample(void)
{
BOOL success;
HCkBinDataW bdImageData;
HCkAiW ai;
HCkJsonObjectW askParams;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Load the data from an existing image.
bdImageData = CkBinDataW_Create();
success = CkBinDataW_LoadFile(bdImageData,L"qa_data/jpg/kid_blue_coat.jpg");
if (success == FALSE) {
wprintf(L"%s\n",CkBinDataW_lastErrorText(bdImageData));
CkBinDataW_Dispose(bdImageData);
return;
}
ai = CkAiW_Create();
CkAiW_putProvider(ai,L"openai");
// Use your provider's API key.
CkAiW_putApiKey(ai,L"MY_API_KEY");
// Choose a model.
CkAiW_putModel(ai,L"gpt-5");
askParams = CkJsonObjectW_Create();
CkJsonObjectW_UpdateString(askParams,L"image.output_format",L"jpeg");
CkAiW_SetAskParams(ai,askParams);
CkAiW_InputAddImageData(ai,bdImageData,L"");
CkAiW_InputAddText(ai,L"Modify the image by replacing the blue coat with a Metallica T-shirt.");
// Give the AI some time (2 minutes).
CkAiW_putIdleTimeoutMs(ai,120000);
// Ask the AI for image output.
success = CkAiW_Ask(ai,L"image");
if (success == FALSE) {
wprintf(L"%s\n",CkAiW_lastErrorText(ai));
CkBinDataW_Dispose(bdImageData);
CkAiW_Dispose(ai);
CkJsonObjectW_Dispose(askParams);
return;
}
// Get the image response data.;
success = CkAiW_GetOutputBd(ai,bdImageData);
if (success == FALSE) {
wprintf(L"%s\n",CkAiW_lastErrorText(ai));
CkBinDataW_Dispose(bdImageData);
CkAiW_Dispose(ai);
CkJsonObjectW_Dispose(askParams);
return;
}
CkBinDataW_WriteFile(bdImageData,L"c:/aaworkarea/out.jpg");
wprintf(L"Success.\n");
// -------------------------------
// Sample Input:
// -------------------------------
//
// -------------------------------
// Sample Output:
// -------------------------------
//
CkBinDataW_Dispose(bdImageData);
CkAiW_Dispose(ai);
CkJsonObjectW_Dispose(askParams);
}