forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Косяк фунции ImageFromImage (http://forum.boolean.name/showthread.php?t=2328)

Chip 08.01.2007 18:25

Косяк фунции ImageFromImage
 
При использовании функции ImageFromImage изображение теряет прозрачность.
Что за фигня?
Может кто подправил этот class?

ARV 08.01.2007 19:42

Re: Косяк фунции ImageFromImage
 
Эта функция работает в MDIP 2.0, а в MDIP 1.0 - как раз приводит к потере прозрачности... - так я прочитал на одном из англоязычных форумов... Но это неправда :(

SubZer0 08.01.2007 20:02

Re: Косяк фунции ImageFromImage
 
+1

Функция на яве создает новую чистую картинку с белым фоном и рисует туда область из первой... и это косяк создателей явы... исчем дружненько альтернативу... ибо я в свое время пару дней помучался и бросил... даже блин нету функций чтобы стереть картинку... и создать из массива байтв с прозрачностью тоже нельзя...

:(

ARV 08.01.2007 23:14

Re: Косяк фунции ImageFromImage
 
Люди! Благодарите pilgrim-а: он для вас (и нас) эту проблему давно решил! Ищите его библиотеку Lib_cnv2, находится в архиве ui.zip - там есть функция, которая прекрасно рисует часть изображения с прозрачностью!!!

Chip 09.01.2007 01:04

Re: Косяк фунции ImageFromImage
 
Попробовал работает спасибо Пиллигриму!!!
draw_image(x, y,Image, image_x, image_y, image_w, image_h);

ARV 09.01.2007 09:48

Re: Косяк фунции ImageFromImage
 
Это косяк мидлетпаскаля - это он так реализуют копирование части картинки...

IVenoMI 09.01.2007 12:23

Re: Косяк фунции ImageFromImage
 
Цитата:

Сообщение от ARV
Это косяк мидлетпаскаля - это он так реализуют копирование части картинки...

Это не косяк Паскаля... Как уже говорилось, это результат небольшой непродуманности J2ME...

ARV 09.01.2007 13:36

Re: Косяк фунции ImageFromImage
 
Почему же pilgrim сделал на Jave все ништяк? :) к тому же я смотрел классы, которые получаются из-под мидлетпаскаля, так вот функция ImageFromImage не есть обертка метода какого-то класса J2ME - она реализовывает именно тот самый алгоритм: создает пустое белое изображение и в него копирует... Так что не вижу оснований обвинять J2ME - там, по-моему, вообще готовой функции для этого нет (кажется, в javax.microedition.lcdui.game что-то подобное есть, но не уверен).

Chip 09.01.2007 14:09

Re: Косяк фунции ImageFromImage
 
Пилигримм реализовал вот так :

public static void draw_image(int x, int y,Image i, int ix, int iy, int iw, int ih)
{
M.G.setClip(x,y,iw,ih);
M.G.drawImage(i, x-ix, y-iy,20);
}
От сюда видим что это процедура а не функция, А в МР функция возвращает новый имидж и скорее всего использует для этого массив, поэтому я думаю что косяк J2ME

Piligrim 09.01.2007 14:34

Re: Косяк фунции ImageFromImage
 
createImage создается с белым фоном. а я просто рисую часть исходного

ARV 09.01.2007 16:35

Re: Косяк фунции ImageFromImage
 
Цитата:

Сообщение от Chip
А в МР функция возвращает новый имидж и скорее всего использует для этого массив, поэтому я думаю что косяк J2ME

Повторяю: МР не работает через массив, а делает так, как уже говорил: создает новый image и в него копирует и т.д. Новый image, как сказал pilgrim, создается с белым фоном - вот и весь ответ. Декомпилируй класс МР и посмотри, как он реализует ImageFromImage - вопросы отпадут.

IVenoMI 09.01.2007 17:36

Re: Косяк фунции ImageFromImage
 
Насколько я помню, аналогичная функция явы давала тот же результат...
Или я не прав?..

ARV 11.01.2007 09:54

Re: Косяк фунции ImageFromImage
 
Назови аналогичную функцию явы - я самостоятельно ее не нашел :(

Piligrim 12.01.2007 09:46

Re: Косяк фунции ImageFromImage
 
Image new = Image.createImage(50,50);

ARV 12.01.2007 11:03

Re: Косяк фунции ImageFromImage
 
Я имел ввиду функцию явы, аналогичную ImageFromImage, а приведен пример конструктора нового изображения, т.е. не копирования части из имеющегося

Chip 12.01.2007 11:06

Re: Косяк фунции ImageFromImage
 
Так ImageFromImage и есть конструктор нового изображения.

IVenoMI 12.01.2007 11:44

Re: Косяк фунции ImageFromImage
 
Цитата:

Сообщение от Chip
Так ImageFromImage и есть конструктор нового изображения.

Именно так, оно создает новое изображение с белым заполнением и накладывает на него исходный имедж...

ARV 13.01.2007 11:35

Re: Косяк фунции ImageFromImage
 
Цитата:

Сообщение от Chip
Так ImageFromImage и есть конструктор нового изображения.

Друзья, не будем путать объектно-ориентированные вещи с простым паскалем: в паскале нет понятия конструктор, ImageFromImage - это функция, а конструктор - это new CreateImage(....). Так вот, функция ImageFromImage, как я и говорил, реализует на Яве следующий алгоритм: создает новое изображение конструктором, который заливает фон белым, потом копирует в него часть исходной картинки и затем возвращает результат.
Отсюда 2 вывода: 1 - в Яве нет функции, сразу возвращающей часть исходной картинки и 2 - Ява ни в чем не виновата, т.к. работа конструктора предполагает заливку белым фоном.
Выход только один, если надо именно получить новое изображение из исходного: на Яве написать метод, который полезет в массив байтов вновь созданного изображения и задаст белый цвет - прозрачным. После этого можно будет копировать как обычно. Чтобы этот алгоритм реализовать, надо немного: знать формат PNG-файла.

Piligrim 13.01.2007 11:56

Re: Косяк фунции ImageFromImage
 
Изобретение велосипеда продолжается!
У меня есть такая библиотека UI Ext. В ней среди прочего поддерживается работа со стандартной возможностью MIDP2: Работа с изображениями в виде rgb массива. Я с помощью этой возможности имея только черный шрифт, получаю его любого цвета, не теряя прозрачности фона.

IVenoMI 13.01.2007 17:24

Re: Косяк фунции ImageFromImage
 
Если б в этой либе еще и функциии поворота имаджа на произвольный угол были...

Piligrim 14.01.2007 10:46

Re: Косяк фунции ImageFromImage
 
А всю страницу с моими библиотеками просмотреть не пробовали?
muTank - пример со свободным вращением спрайтов. Признаюсь в свое время нашел его в кладовке примеров java.sun.com :)

IVenoMI 14.01.2007 12:23

Re: Косяк фунции ImageFromImage
 
Я ее сразу Телепортом скопировал полностью... Надо признаться, действителоьно этот пример проглядел...

Eddy 19.01.2007 14:52

Re: Косяк фунции ImageFromImage
 
Вложений: 2
//знать формат PNG-файла.
Вот как то обещал дат pilgrimу либу для работы с 256 цветным пнг.Я с ней не разбирался,так только просмотрел.Может кто посмотрит и с примерчиком выложит откомпилинную?:)


Часовой пояс GMT +4, время: 13:10.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot