Вверх ↑
Этот топик читают: Гость
Ответов: 95
Рейтинг: 10
#1: 2010-07-13 13:24:17 ЛС | профиль | цитата
У меня возникла такая проблема, очень нужно сделать наложение вотемарка... а точнее наложить одну картинку PNG на другую с определенными координатами, но так чтоб они не потеряли прозрачность и их можно было сохранить в одну картинку PNG...
вот мои попытки

code_19382.txt
Две проблемы которые никак не могу решить... прозрачность пропадает при использовании Image, и Img_tween не позволяет задать координаты наложения..
Излазил весь форум, сам пытался уже много как сделать, но все без полезно, очень надеюсь на вашу помощь.
карма: 1

0
файлы: 1code_19382.txt [1.6KB] [495]
Ответов: 1161
Рейтинг: 160
#2: 2010-07-13 13:25:52 ЛС | профиль | цитата
Img_Bmp пробовал?
карма: 0

1
Голосовали:bardak
Ответов: 95
Рейтинг: 10
#3: 2010-07-13 13:29:20 ЛС | профиль | цитата
LainX
да, я находил на форуме nesco выкладывал, но у меня не получилось, сейчас буду пробовать еще(
карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#4: 2010-07-13 13:33:13 ЛС | профиль | цитата
Прозрачность, хм, по-моему старые компоненты не позволяют работать с прозрачностью (встроенной в саму картинку), тут скорее всего нужны компоненты для работы с Alpha-картинками Пусть лучше nesco скажет
карма: 10
1
Голосовали:bardak
Ответов: 95
Рейтинг: 10
#5: 2010-07-13 13:37:15 ЛС | профиль | цитата
Assasin
по сути прозрачность нужна только для той картинки которую накладываю её можно сделать и BMP( но наложить BMP картинку c "прозрачностью" на PNG и задать координаты с помощью Img_tween все равно никак(
карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#6: 2010-07-13 13:42:09 ЛС | профиль | цитата
bardak писал(а):
по сути прозрачность нужна только для той картинки которую накладываю

Тогда думаю подойдет вот это: Img_AlphaBmp
карма: 10
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#7: 2010-07-13 13:51:53 ЛС | профиль | цитата
bardak писал(а):
и их можно было сохранить в одну картинку PNG...

А у нас что-то умеет сохранять в PNG Даже компонент PNG, хоть и позволяет сохранять, но функция получения образа для сохранения не реализована внутри компонента
------------ Дoбавленo в 13.51:
Assasin писал(а):
Прозрачность, хм, по-моему стандартные компоненты не позволяют работать с прозрачностью (встроенной в саму картинку)

Да, правильно, так оно и есть. Для работы с прозрачностью, нужен BMP pf32bit, который имеет четвертый канал -- канал прозрачности
карма: 22

0
Ответов: 95
Рейтинг: 10
#8: 2010-07-13 13:55:30 ЛС | профиль | цитата
Assasin
Спасибо сейчас буду пробовать Img_AlphaBmp
nesco
Ой, я не знаю как это работает, но конвертировал компонентом PNG из bmp в png, а потом сохранял им же картинки в PNG
подскажи правильное направление, вот пробую с img_bmp вот попытки

Add(MainForm,2953706,21,105)
{
Width=768
Height=741
BorderStyle=1
WindowsState=0
link(onActivate,1951099:doEvent1,[])
}
Add(ImageLoader,4434340,161,105)
{
DrawSource=2
link(onLoad,16191583:doEvent1,[(205,111)])
link(onDraw,14677937:doLoad,[])
link(FileName,1508835:Text,[])
}
Add(Edit,1508835,161,42)
{
Left=545
Top=140
Visible=1
Text="temp.png"
}
Add(Image,14677937,336,112)
{
Left=5
Top=5
Width=180
Height=155
ViewStyle=3
Point(ImageWidth)
Point(ImageHeight)
}
Add(ImageLoader,2631760,455,112)
{
ScaleMode=4
DrawSource=2
link(onLoad,2631760:doDraw,[(499,118)(499,122)(443,122)(443,125)])
link(onDraw,12967366:doLoad,[])
link(FileName,14255030:Text,[])
}
Add(Edit,14255030,455,63)
{
Left=485
Top=100
Visible=1
Text="watemark.png"
}
Add(Image,12967366,546,119)
{
Left=190
Width=185
Height=155
Color=15793151
ViewStyle=4
Point(ImageWidth)
Point(ImageHeight)
}
Add(Hub,1951099,105,105)
{
OutCount=3
link(onEvent1,4434340:doLoad,[])
link(onEvent2,2631760:doLoad,[])
}
Add(Button,2225456,35,217)
{
Left=10
Top=200
link(onClick,2823485:doRefresh,[(163,223)(163,461)])
}
Add(Hub,16191583,196,91)
{
link(onEvent1,4434340:doDraw,[(205,89)(149,89)(149,118)])
}
Add(Img_Bmp,8223377,301,567)
{
Y=15
Transparent=0
TransparentColor=16777215
link(onDraw,3724259:doDraw,[])
link(Bitmap,14574694:Var2,[(307,554)(300,554)])
link(SourceBitmap,14677937:ImageBitmap,[(314,355)(342,355)])
}
Add(PaintBox,2823485,259,455)
{
Left=115
Top=185
Width=345
Height=290
Point(onPaint)
link(onBeforeDraw,8223377:doDraw,[(298,461)(298,433)(187,433)(187,573)])
}
Add(Img_Bmp,3724259,357,567)
{
Transparent=0
TransparentColor=16777215
link(Bitmap,14574694:Var3,[(363,541)])
link(SourceBitmap,12967366:ImageBitmap,[(370,359)(552,359)])
}
Add(GetDataEx,14574694,294,532)
{
link(Data,2823485:Bitmap,[(307,512)(265,512)])
}

Но как опять же быть с прозрачностью(((
карма: 1

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#9: 2010-07-13 13:59:08 ЛС | профиль | цитата
bardak писал(а):
а потом сохранял им же картинки в PNG

А альфа-канал оставался, или исчезал при использовании метода doLoadFromBitmap Хм... Надо бы проверить. Но если нет поддержки альфа-канала, то смысла в такой конвертации я не вижу
------------ Дoбавленo в 13.59:
bardak писал(а):
вот пробую с img_bmp

Да не работает он с прозрачность. С прзрачностью работает все, что имеет префикс Alpha
Тебе же написали, что нужен Img_AlphaBmp
карма: 22

0
Ответов: 95
Рейтинг: 10
#10: 2010-07-13 14:05:36 ЛС | профиль | цитата
nesco
Я не очень разбираюсь в терминах, но это скорее псевдо прозрачность... заметил что прозрачность PNG заменяется на цвет 0xECE9D8 и подставил его в цвет прозрачности IMG_bmp.. вроде бы получилось(картинка наложилась на другую, и фон второй картинки пропал)...или я вообще не то делаю?
code_19384.txt
карма: 1

0
файлы: 1code_19384.txt [1.7KB] [518]
Разработчик
Ответов: 26153
Рейтинг: 2127
#11: 2010-07-13 14:12:13 ЛС | профиль | цитата
bardak, я понять не могу, что тебе надо -- из двух картинок bitmap получить одну с проникновением одной в другую, или тебе надо наложить png картинки с проникновением и сохранением прозрачности
карма: 22

0
Ответов: 95
Рейтинг: 10
#12: 2010-07-13 14:20:28 ЛС | профиль | цитата
nesco
Мне нужно из двух PNG картинок получить одну например было

и



А нужно сделать


Но так чтоб при наложении фон второй картинки оставался прозрачным и не портил первую(
карма: 1

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#13: 2010-07-13 14:29:28 ЛС | профиль | цитата
На, координаты вывода сам меняй

code_19385.txt
карма: 22

0
файлы: 1code_19385.txt [1.5KB] [630]
Ответов: 95
Рейтинг: 10
#14: 2010-07-13 14:32:01 ЛС | профиль | цитата
nesco

карма: 1

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#15: 2010-07-13 14:33:36 ЛС | профиль | цитата
bardak, ну, батенька, у вас версия HiAsm должна быть b184, не ниже, там находятся эти компоненты. На старых версиях это работать не будет
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)