Я пытался отделить задачи, потому что Openai может занять некоторое время для создания изображений, поэтому у меня есть страница, которая позволяет вам вводить элементы, и это создаст рецепт для вас. Первоначально у меня было это, так что это также генерировало изображение блюда при создании рецептов для вас, но это занимало слишком долго, и я получил бы время для запроса. Часть этого в узле, поэтому мое приложение Android вызывает сервер узлов, интерфейсы сервера узлов с OpenAI и возвращает информацию в Android.
app.get("/meal_image", async (req: Request, res: Response) => {
const { name } = req.query
console.log(`Generating image for meal ${name}`)
generateImage(name)
.then(response => {
res.send(response.image)
})
.catch(err => {
res.send(err)
})
})
< /code>
, который выводит кодируемую строку Base64 в ответ. Я проверил эту часть, и она отлично работает, строка Base64 появляется, как и ожидалось. Поэтому я взял версию катушки 3.2.0, а также катушки-сети-охттп
и приступил к реализации. В моем взгляде на Android у меня есть ... < /p>
@Composable
fun FoodInfoView(...) {
val context = LocalContext.current
val painter = rememberAsyncImagePainter(
model = ImageRequest.Builder(context)
.data("MY URL HERE")
.crossfade(true) //Have also tried adding .size(coil3.size.Size.Original)
.build()
)
//view code for other things...
val painterState by painter.state.collectAsState()
Text("State: ${painterState}")
when(painterState) {
is AsyncImagePainter.State.Loading -> {
Timber.d("Loading")
CircularProgressIndicator()
}
is AsyncImagePainter.State.Empty -> {
Timber.d("Empty")
}
is AsyncImagePainter.State.Error -> {
Timber.d("Error")
}
is AsyncImagePainter.State.Success -> {
Image(
modifier = Modifier.fillMaxWidth(),
painter = painter,
contentDescription = null
)
}
//...
}
< /code>
Каждый раз, когда я запускаю код, в logcat я вижу «пустое», а затем «Отделение ведения декодирования изображения!» а затем «Ошибка»
По моему мнению, я получаю «состояние: ...» чрезвычайно длинный список вещей, например, вся переменная состояния, включая URL и все остальное, и заканчивается ...
"throwable=Android.graphics.imagedecoderdadexcept /> И на стороне моего узла я никогда не получаю «генерирующее изображение для еды ...», что означает, что он даже не вызывает на мой сервер узлов, и он ошибся еще до того, как добраться до этой части. У меня есть ... < /p>
[versions]
...
coilVersion = "3.2.0"
coilKTVersion = "1.3.2"
...
[libraries]
...
coil = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coilVersion" }
coil-kt = { group = "io.coil-kt", name = "coil-compose", version.ref = "coilKTVersion" }
coil-network = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coilVersion" }
...
< /code>
И есть реализации для всех из них в build.gradle. < /p>
Извините за длинный пост, если необходима дополнительная информация, я буду рад предоставить его. Спасибо
Пара обновлений ...
Вывод моего сервера узлов (хотя я не хочу выводить всю строку) - что -то вроде этого ...
"Ivborw0kggoaaaaansuheugaabaaaaaaqacaaaadwf7zuaeagw2nhqlgaaasdanvtygaaab5qdw1kyz..."
Так что это просто строка база64, без предварительных префиксов «data: image /jpeg; Сам.AsyncImage(
model = ImageRequest.Builder(LocalContext.current)
.data("MY URL HERE")
.crossfade(true)
.listener(
onStart = { Timber.d("On Start") },
onCancel = { },
onError = { _, res -> res.throwable.printStackTrace() },
onSuccess = {_, _ -> Timber.d("On Success") }
)
.build(),
placeholder = painterResource(R.drawable.placeholder),
contentDescription = null,
contentScale = ContentScale.FillWidth,
modifier = Modifier.fillMaxWidth()
)
< /code>
При использовании этой версии, в logcat я получаю ... < /p>
[ 1753745982.680 10524:10524 D/FoodInformationViewKt$FoodInformationView$lambda$28$lambda$26$lambda$12$$inlined$listenOn Start called for ImageRequest
2025-07-28 16:39:42.738 10524-10524 System.err com.myapp.fttest W android.graphics.ImageDecoder$DecodeException: Failed to create image decoder with message 'unimplemented'Input contained an error.
Я все еще никогда не получаю консоли .log на моем сервере узлов, поэтому он вообще не вызывает конечную точку.
Я пытался отделить задачи, потому что Openai может занять некоторое время для создания изображений, поэтому у меня есть страница, которая позволяет вам вводить элементы, и это создаст рецепт для вас. Первоначально у меня было это, так что это также генерировало изображение блюда при создании рецептов для вас, но это занимало слишком долго, и я получил бы время для запроса. Часть этого в узле, поэтому мое приложение Android вызывает сервер узлов, интерфейсы сервера узлов с OpenAI и возвращает информацию в Android.[code]export async function generateImage(name) { try { const response = await openai.responses.create({ model: "gpt-4o", input: `Generate an image of a ${name} meal that is a 500x500px jpeg`, tools: [{type: "image_generation"}] }) const imageData = response .output .filter((output) => output.type === "image_generation_call") .map((output) => output.result) if(imageData.length > 0) { return { success: true, image: imageData[0], error: "" } } else { return { success: false, image: "", error: "Image data length was 0" } } [/code] Затем, как часть приложения HTTP/Express ... [code]app.get("/meal_image", async (req: Request, res: Response) => { const { name } = req.query console.log(`Generating image for meal ${name}`) generateImage(name) .then(response => { res.send(response.image) }) .catch(err => { res.send(err) }) }) < /code> , который выводит кодируемую строку Base64 в ответ. Я проверил эту часть, и она отлично работает, строка Base64 появляется, как и ожидалось. Поэтому я взял версию катушки 3.2.0, а также катушки-сети-охттп и приступил к реализации. В моем взгляде на Android у меня есть ... < /p> @Composable fun FoodInfoView(...) { val context = LocalContext.current val painter = rememberAsyncImagePainter( model = ImageRequest.Builder(context) .data("MY URL HERE") .crossfade(true) //Have also tried adding .size(coil3.size.Size.Original) .build() )
//view code for other things... val painterState by painter.state.collectAsState() Text("State: ${painterState}") when(painterState) { is AsyncImagePainter.State.Loading -> { Timber.d("Loading") CircularProgressIndicator() } is AsyncImagePainter.State.Empty -> { Timber.d("Empty") } is AsyncImagePainter.State.Error -> { Timber.d("Error") } is AsyncImagePainter.State.Success -> { Image( modifier = Modifier.fillMaxWidth(), painter = painter, contentDescription = null ) } //... } < /code> Каждый раз, когда я запускаю код, в logcat я вижу «пустое», а затем «Отделение ведения декодирования изображения!» а затем «Ошибка» По моему мнению, я получаю «состояние: ...» чрезвычайно длинный список вещей, например, вся переменная состояния, включая URL и все остальное, и заканчивается ... "throwable=Android.graphics.imagedecoderdadexcept /> И на стороне моего узла я никогда не получаю «генерирующее изображение для еды ...», что означает, что он даже не вызывает на мой сервер узлов, и он ошибся еще до того, как добраться до этой части. У меня есть ... < /p> [versions] ... coilVersion = "3.2.0" coilKTVersion = "1.3.2" ...
[libraries] ... coil = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coilVersion" } coil-kt = { group = "io.coil-kt", name = "coil-compose", version.ref = "coilKTVersion" } coil-network = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coilVersion" } ... < /code> И есть реализации для всех из них в build.gradle. < /p> Извините за длинный пост, если необходима дополнительная информация, я буду рад предоставить его. Спасибо Пара обновлений ... Вывод моего сервера узлов (хотя я не хочу выводить всю строку) - что -то вроде этого ... "Ivborw0kggoaaaaansuheugaabaaaaaaqacaaaadwf7zuaeagw2nhqlgaaasdanvtygaaab5qdw1kyz..." Так что это просто строка база64, без предварительных префиксов «data: image /jpeg; Сам.AsyncImage( model = ImageRequest.Builder(LocalContext.current) .data("MY URL HERE") .crossfade(true) .listener( onStart = { Timber.d("On Start") }, onCancel = { }, onError = { _, res -> res.throwable.printStackTrace() }, onSuccess = {_, _ -> Timber.d("On Success") } ) .build(), placeholder = painterResource(R.drawable.placeholder), contentDescription = null, contentScale = ContentScale.FillWidth, modifier = Modifier.fillMaxWidth() ) < /code> При использовании этой версии, в logcat я получаю ... < /p> [ 1753745982.680 10524:10524 D/FoodInformationViewKt$FoodInformationView$lambda$28$lambda$26$lambda$12$$inlined$listenOn Start called for ImageRequest 2025-07-28 16:39:42.738 10524-10524 System.err com.myapp.fttest W android.graphics.ImageDecoder$DecodeException: Failed to create image decoder with message 'unimplemented'Input contained an error. [/code] Я все еще никогда не получаю консоли .log на моем сервере узлов, поэтому он вообще не вызывает конечную точку.
Я пытался отделить задачи, потому что Openai может занять некоторое время для создания изображений, поэтому у меня есть страница, которая позволяет вам вводить элементы, и это создаст рецепт для вас. Первоначально у меня было это, так что это также...
Я был бы признателен, если бы вы помогли мне с этой проблемой, которую я имел в течение последнего месяца.E/libEGL ( 5968): called unimplemented OpenGL ES API
D/EGL_emulation( 5968): app_time_stats: avg=947.73ms min=19.49ms max=3199.28ms count=4...
Я пытаюсь запустить пример внедрения Python в .NET с Я следовал статьям по устранению неполадок, чтобы установить правильные %PYTHONPATH% и %PYTHONHOME% для моей среды anaconda в базовом каталоге программы.
Я хочу, чтобы он выглядел как эскиз, который я загрузил. Я не уверен, возможно ли это, я искал это некоторое время и могу найти только людей, которые спрашивают, как поместить текст рядом с изображением, а не изображение рядом с текстом. Я могу...
Я пытаюсь вырезать лица из аватаров Instagram, сначала обнаруживая лица, а затем изменяя размер изображения. я читаю все изображения, которые были сохранены в кадре данных, а затем создаю массив numpy. Затем я запускаю фронтальный детектор лиц,...