Вверх ↑
Этот топик читают: Гость
Ответов: 10
Рейтинг: 8
#1: 2010-09-04 13:29:52 ЛС | профиль | цитата
Здравствуйте, можно ли реализовать конвертер картинок? Например есть обычная картинка jpg формата а мне её нужно пере конвертировать в png прямо в программе, редактировать и сохранить! Вроде можно через компоненты Jpeg и PNG но что-то не выходит не как, выдаёт ошибку. Runtime Error и номер там какой-то.
------------ Дoбавленo в 13.29:
Вот кстати код, там есть кнопка конвертирование в PNG.



Add(MainForm,2953706,56,105)
{
Width=584
Height=685
Color=-16777211
Caption=""
BorderStyle=4
}
Add(ButtonRush,14694923,35,161)
{
Left=5
Top=10
Caption="Загрузить"
Glyphs=[]
link(onClick,921188:doEvent1,[])
}
Add(ODialog,4525384,63,210)
{
Filter="jpg|*.JPG|bmp|*.bmp"
Title="Открыть"
FileName=""
link(onExecute,15457271:doText,[(110,216)(110,111)])
}
Add(PictureStream,10039869,133,210)
{
link(onLoad,12832431:doEvent1,[(181,216)(181,34)])
link(FileName,15457271:Text,[(139,174)(125,174)])
link(Bitmap,9486925:Var1,[(146,198)(195,198)(195,254)])
}
Add(Resize,13339929,196,301)
{
Width=200
Height=500
link(onResult,12832431:doEvent2,[(289,307)(289,249)(188,249)(188,41)])
link(Bitmap,9486925:Var2,[(202,269)(223,269)])
link(Width,7907425:Var1,[(209,265)(183,265)(183,380)(132,380)])
link(Height,7907425:Var2,[(216,280)(178,280)(178,374)(139,374)])
}
Add(Hub,12832431,196,28)
{
InCount=7
link(onEvent1,10425052:doLoad,[(224,34)(224,216)])
link(onEvent2,13802836:doLoad,[(318,41)(318,139)])
}
Add(ButtonRush,5462504,63,280)
{
Left=80
Top=10
Width=105
Caption="Размер"
Glyphs=[]
link(onClick,842003:doNext,[])
}
Add(ChildForm,7907425,126,336)
{
link(onEvent1,13339929:doResize,[(189,342)(189,307)])
}
BEGIN_SDK
Add(EditMulti,10116217,21,21)
{
EventCount=1
WorkCount=1
VarCount=2
link(doWork1,6270353:doVisible,[(39,27)(39,83)])
link(Var1,423595:Text,[(27,207)(216,207)])
link(Var2,10496661:Text,[(34,213)(272,213)])
}
Add(MainForm,6270353,56,49)
{
Left=35
Top=105
Width=308
Height=118
Color=-16777211
Visible=1
Caption="Размер"
BorderStyle=4
Point(doVisible)
}
Add(ButtonRush,9022839,56,105)
{
Left=190
Top=5
Width=105
Height=80
Caption="Ок"
Glyphs=[]
link(onClick,11518537:doEvent1,[])
}
Add(Edit,423595,210,161)
{
Left=60
Top=35
Width=120
Text=""
DataType=1
}
Add(Edit,10496661,266,161)
{
Left=60
Top=65
Width=120
Text=""
DataType=1
}
Add(Label,7717877,105,161)
{
Left=10
Top=40
Width=43
Height=17
Caption="Ширина"
}
Add(Label,908818,56,161)
{
Left=10
Top=70
Width=42
Height=17
Caption="Высота"
}
Add(Hub,11518537,112,105)
{
link(onEvent1,6270353:doClose,[(138,111)(138,93)(44,93)(44,76)])
link(onEvent2,10116217:onEvent1,[(224,118)(224,27)])
}
END_SDK
Add(Counter,842003,126,280)
{
Max=1239023616
link(onNext,7907425:doWork1,[(170,286)(170,320)(114,320)(114,342)])
}
Add(ButtonRush,10768565,63,406)
{
Left=190
Top=10
Caption="Сохранить"
Glyphs=[]
link(onClick,1831067:doExecute,[])
}
Add(GetDataEx,9486925,217,249)
{
Angle=1
link(Data,13607682:Var1,[])
}
Add(SDialog,1831067,133,406)
{
Filter="png|*png|"
Title="Сохранить"
FileName="Ava-kontakt"
link(onExecute,10039869:doSave,[(265,412)(265,260)(121,260)(121,223)])
}
Add(Gamma,14674039,231,476)
{
link(onResult,12832431:doEvent3,[(300,482)(300,134)(173,134)(173,48)])
link(Bitmap,943366:Var2,[])
link(Level,12807450:Text,[(244,464)(195,464)(195,541)(146,541)])
}
Add(GetDataEx,13607682,231,249)
{
Angle=1
link(Data,10425052:ImageBitmap,[(244,254)])
}
Add(ButtonRush,441991,63,483)
{
Left=315
Top=10
Width=25
Font=[MS Sans Serif,20,0,0,1]
Caption="+"
Data=String(55)
Glyphs=[]
link(onClick,13913917:doEvent1,[(103,489)(103,503)])
}
Add(ButtonRush,13336447,63,518)
{
Left=345
Top=10
Width=25
Font=[MS Sans Serif,25,0,0,1]
Caption="-"
Data=String(45)
Glyphs=[]
link(onClick,13913917:doEvent2,[(103,524)(103,510)])
}
Add(Edit,12807450,140,497)
{
Left=205
Top=860
link(onChange,14674039:doGamma,[(202,503)(202,482)])
}
Add(Hub,13913917,112,497)
{
InCount=2
OutCount=1
link(onEvent1,12807450:doText,[])
}
Add(Image,10425052,238,210)
{
Left=10
Top=50
Width=250
Height=600
Color=-16777211
}
Add(Label,9710577,56,49)
{
Left=270
Top=20
Width=38
Height=17
Color=-16777211
Caption="Гамма"
}
Add(GrayScale,2735489,231,560)
{
link(onResult,12832431:doEvent4,[(308,566)(308,121)(184,121)(184,55)])
link(Bitmap,4868491:Var3,[(237,525)])
}
Add(GetDataEx,943366,231,378)
{
link(Data,13607682:Var2,[])
}
Add(CheckBoxRush,1812055,63,560)
{
Left=270
Top=45
Width=110
Color=-16777211
Caption="Градация серого"
link(onCheck,8622899:doCompare,[(102,566)(102,600)(51,600)(51,615)])
}
Add(If_else,8622899,63,609)
{
Op2=String(1)
link(onTrue,2735489:doGrayScale,[(115,615)(115,566)])
link(onFalse,2563932:doWork2,[])
link(Op1,1812055:Checked,[])
}
Add(Edit,15457271,119,105)
{
Left=205
Top=865
Visible=1
link(onChange,5244766:doWork1,[(177,111)(177,163)(121,163)])
}
Add(HubEx,5244766,117,196)
{
Angle=1
link(onEvent,10039869:doLoad,[(121,216)])
}
Add(Glow,10114670,231,720)
{
link(onResult,12832431:doEvent5,[(295,726)(295,155)(165,155)(165,62)])
link(Bitmap,3473887:Var2,[])
}
Add(GetDataEx,4868491,217,520)
{
Angle=3
link(Data,943366:Var1,[(214,525)(214,383)])
}
Add(CheckBoxRush,5878217,63,650)
{
Left=270
Top=70
Width=110
Color=-16777211
Caption="Свечение"
link(onCheck,14169793:doCompare,[(102,656)(102,690)(51,690)(51,705)])
}
Add(If_else,14169793,63,699)
{
Op2=String(1)
link(onTrue,10114670:doGlow,[(163,705)(163,726)])
link(onFalse,2563932:doWork3,[(109,712)])
link(Op1,5878217:Checked,[])
}
Add(HubEx,2563932,105,616)
{
link(onEvent,5244766:doWork2,[(118,622)])
}
Add(GetDataEx,12747941,231,637)
{
link(Data,4868491:Var2,[(237,600)(223,600)])
}
Add(Hub,921188,77,161)
{
link(onEvent1,4525384:doExecute,[(105,167)(105,200)(46,200)(46,216)])
}
Add(GetDataEx,3473887,231,672)
{
link(Data,5179464:Var2,[])
}
Add(GetDataEx,5179464,231,658)
{
link(Data,12747941:Var2,[])
}
Add(Jpeg,13802836,427,133)
{
Point(doBitmap)
link(onBitmap,10412351:doLoad,[(481,139)(481,174)])
}
Add(ButtonRush,3647380,336,168)
{
Left=270
Top=100
Width=110
Caption="Конвертер в PNG"
Glyphs=[]
link(onClick,14481157:doEvent1,[])
}
Add(Hub,14481157,385,168)
{
link(onEvent1,13802836:doBitmap,[(413,174)(413,153)])
link(onEvent2,10412351:doLoadFromBitmap,[(451,181)(451,188)])
}
Add(PNG,10412351,504,168)
{
Point(doLoadFromBitmap)
link(onBitmap,2315635:doDraw,[])
}
Add(Img_AlphaBmp,2315635,595,168)
{
link(Bitmap,16010973:ImageBitmap,[])
}
Add(Image,16010973,595,98)
{
Left=270
Top=130
Width=110
Height=215
}

карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#2: 2010-09-04 14:17:29 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-09 18:46:06
карма: 0

0
Ответов: 3851
Рейтинг: 159
#3: 2010-09-04 14:18:48 ЛС | профиль | цитата

вот эту code_20393.txt часть посмотри повнимательнее..
карма: 0
начавший
0
файлы: 1code_20393.txt [153B] [99]
Ответов: 10
Рейтинг: 8
#4: 2010-09-04 14:32:24 ЛС | профиль | цитата
217.74.133.70 писал(а):
Это называется Photoshop и иже с ним...


Да пределать мне не проблема нужно что бы реализация была в самой программе, а зачем это нужно? Нужно это для скрипения 2 картинок в одну.

Andrey писал(а):
вот эту code_20393.txt часть посмотри повнимательнее..

Что-то вообще не чего не пойму, а что там не так?
карма: 0

0
Ответов: 3851
Рейтинг: 159
#5: 2010-09-04 15:30:28 ЛС | профиль | цитата

Jokfen писал(а):
а что там не так?

ты картинку в потоке подаёшь на точку, которая ждёт имя файла..
карма: 0
начавший
0
Ответов: 10
Рейтинг: 8
#6: 2010-09-04 17:20:28 ЛС | профиль | цитата
То есть, я должен указать путь к файлу? И таким образом Jpg-bmp-png должно работать?
------------ Дoбавленo в 15.48:
Вот код, но всё ровно не как... Что-то вообще не чего не пойму. Вот даже просто jpg-bmp он же должен его отобразить по идее но он даже это не делает... Почему так?


Add(MainForm,2953706,182,210)
{
Width=679
Height=635
}
Add(Button,7013342,182,273)
{
Left=10
Top=10
Width=70
Caption="Загрузка"
link(onClick,10509629:doExecute,[])
}
Add(Image,4346806,385,273)
{
Left=10
Top=35
Width=170
Height=220
}
Add(PictureStream,7175412,329,329)
{
link(onLoad,4346806:doLoad,[(376,335)(376,279)])
link(FileName,5794065:Text,[])
}
Add(ODialog,10509629,231,273)
{
link(onExecute,10009146:doEvent1,[])
}
Add(Edit,5794065,329,168)
{
Left=90
Top=10
Width=330
Text=""
link(onChange,9209894:doEvent1,[(377,174)(377,209)])
}
Add(Hub,9209894,392,203)
{
InCount=2
link(onEvent1,7175412:doLoad,[(447,209)(447,244)(317,244)(317,335)])
link(onEvent2,13002578:doLoad,[(441,216)(441,279)])
}
Add(Jpeg,13002578,476,273)
{
Point(doLoadFromBitmap)
link(onBitmap,16144640:doLoad,[])
}
Add(Button,5315992,385,322)
{
Left=185
Top=35
Caption="Конверт"
link(onClick,13002578:doLoadFromBitmap,[(447,328)(447,293)])
}
Add(Hub,10009146,280,273)
{
link(onEvent1,5794065:doText,[(303,279)(303,174)])
link(onEvent2,9209894:doEvent2,[(343,286)(343,216)])
}
Add(AlphaImage,16144640,539,273)
{
Left=245
Top=65
Width=220
Height=185
Point(onPaint)
Point(doRefresh)
}

------------ Дoбавленo в 17.04:
Вот что-то получилось... Но картинка не такая, вся светлая и не понятная... Как исправить?

Add(MainForm,2953706,182,210)
{
Width=1029
Height=954
}
Add(Button,7013342,182,273)
{
Left=10
Top=10
Width=70
Caption="Загрузка"
link(onClick,10509629:doExecute,[])
}
Add(Image,4346806,385,273)
{
Left=10
Top=35
Width=170
Height=220
}
Add(PictureStream,7175412,329,329)
{
link(onLoad,4346806:doLoad,[(376,335)(376,279)])
link(FileName,5794065:Text,[])
}
Add(ODialog,10509629,231,273)
{
link(onExecute,10009146:doEvent1,[])
}
Add(Edit,5794065,329,168)
{
Left=90
Top=10
Width=330
Text=""
link(onChange,9209894:doEvent1,[(377,174)(377,209)])
}
Add(Hub,9209894,392,203)
{
InCount=2
OutCount=3
link(onEvent1,7175412:doLoad,[(447,209)(447,244)(317,244)(317,335)])
link(onEvent2,13002578:doLoad,[(441,216)(441,279)])
link(onEvent3,13002578:doBitmap,[(432,223)(432,293)])
}
Add(Jpeg,13002578,476,273)
{
Quality=100
Point(doBitmap)
link(onBitmap,14449386:doEvent1,[])
}
Add(Button,5315992,385,322)
{
Left=185
Top=35
Caption="Конверт"
}
Add(Hub,10009146,280,273)
{
link(onEvent1,5794065:doText,[(303,279)(303,174)])
link(onEvent2,9209894:doEvent2,[(343,286)(343,216)])
}
Add(AlphaImage,16144640,609,273)
{
Left=245
Top=65
Width=675
Height=820
Point(onPaint)
Point(doRefresh)
}
Add(Hub,14449386,525,273)
{
link(onEvent1,16144640:doLoad,[])
link(onEvent2,13002578:doSave,[(548,286)(548,240)(466,240)(466,286)])
}

------------ Дoбавленo в 17.20:
Так ну вот вроде всё нормально конвертирует в bmp...

Add(MainForm,2953706,182,168)
{
Width=1029
Height=954
}
Add(Button,7013342,182,273)
{
Left=10
Top=10
Width=70
Caption="Загрузка"
link(onClick,10509629:doExecute,[])
}
Add(Image,4346806,385,273)
{
Left=10
Top=35
Width=170
Height=220
}
Add(PictureStream,7175412,329,322)
{
link(onLoad,4346806:doLoad,[(376,328)(376,279)])
link(FileName,5794065:Text,[])
}
Add(ODialog,10509629,231,273)
{
link(onExecute,10009146:doEvent1,[])
}
Add(Edit,5794065,329,168)
{
Left=90
Top=10
Width=330
Text=""
link(onChange,9209894:doEvent1,[(377,174)(377,209)])
}
Add(Hub,9209894,392,203)
{
InCount=2
OutCount=3
link(onEvent1,7175412:doLoad,[(451,209)(451,230)(310,230)(310,328)])
link(onEvent2,13002578:doLoad,[(440,216)(440,286)])
link(onEvent3,13002578:doBitmap,[(430,223)(430,300)])
}
Add(Jpeg,13002578,602,280)
{
Quality=100
Point(doBitmap)
link(onBitmap,14449386:doEvent1,[])
}
Add(Button,5315992,385,322)
{
Left=185
Top=35
Caption="Конверт"
}
Add(Hub,10009146,273,273)
{
link(onEvent1,5794065:doText,[(300,279)(300,174)])
link(onEvent2,9209894:doEvent2,[(340,286)(340,216)])
}
Add(Hub,14449386,679,280)
{
link(onEvent1,16632248:doLoad,[])
link(onEvent2,8171712:doWork1,[(716,293)(716,240)(592,240)])
}
Add(HubEx,8171712,588,252)
{
Angle=1
link(onEvent,13002578:doSave,[(592,293)])
}
Add(Image,16632248,770,280)
{
Left=250
Top=35
Width=170
Height=225
}
Add(PictureStream,13010657,763,343)
{
link(Bitmap,16632248:ImageBitmap,[])
}
Add(Button,13486676,623,399)
{
Left=430
Top=10
link(onClick,11830212:doExecute,[])
}
Add(SDialog,11830212,679,399)
{
Filter="bmp|*bmp"
link(onExecute,13010657:doSave,[(737,405)(737,356)])
}
карма: 0

0
Ответов: 3349
Рейтинг: 233
#7: 2010-09-04 17:34:35 ЛС | профиль | цитата
[flood]Блин, вкладкой ошибся[/flood]
карма: 1

0
файлы: 1code_20394.txt [6.3KB] [123]
Ответов: 10
Рейтинг: 8
#8: 2010-09-04 17:35:36 ЛС | профиль | цитата
А вот это уже не работает(( Помогите пожалуйста.
code_20395.txt
карма: 0

0
файлы: 1code_20395.txt [2.1KB] [144]
Ответов: 8930
Рейтинг: 823
#9: 2010-09-04 19:43:56 ЛС | профиль | цитата
Jokfen, code_20396.txt
карма: 19

1
файлы: 1code_20396.txt [1KB] [158]
Голосовали:Jokfen
Ответов: 3851
Рейтинг: 159
#10: 2010-09-04 19:54:09 ЛС | профиль | цитата

Эх Леонид, я понимаю, что самому сделать быстрее, но ведь у него почти получилось !..
карма: 0
начавший
2
Голосовали:pardon, Jokfen
Ответов: 8930
Рейтинг: 823
#11: 2010-09-04 20:48:23 ЛС | профиль | цитата
Andrey, так я сам учился на схемах коллег, доходчивее получалось [flood]проведёшь пальчиком по связи, минут пять лупишь глаза, и только потом доходит: "Во-от как это делается, оказывается, кроме Hab-а и другие элементы есть!"[/flood]
карма: 19

0
Ответов: 131
Рейтинг: 15
#12: 2010-09-04 21:10:20 ЛС | профиль | цитата
[flood]Так точно, ещё и Form существует шуткую[/flood]
карма: 0

0
Ответов: 10
Рейтинг: 8
#13: 2010-09-05 09:58:54 ЛС | профиль | цитата
Спасибо большое! А каким образом компонент File Path разбивает имя файла? И что за точка каталог первого запуска?
------------ Дoбавленo в 06.43:
А вот можно ли как-нибудь объяснить принцип? Вот мне нужно: Загружаем обыкновенную картинку Jpeg, её конвертируем в png, прямо в программе выбираем ещё одну картинку из png формата они соединяются вместе, это будет логотип, получаются что 2 картинки я соединил в одну и снова конвертирую в jpg и уже это сохраняю. Я принцип соединения картинок понял, всё нормально выходит, а вот эти переходы с jpg в png для меня трудность...


------------ Дoбавленo в 09.58:
Вот не пойму как сделать что бы картинку не сохранять сразу же а что бы она отобразилась. Для этого можно использовать Image обычный?
карма: 0

0
Ответов: 4641
Рейтинг: 334
#14: 2010-09-05 10:16:56 ЛС | профиль | цитата
Jokfen писал(а):
А каким образом компонент File Path разбивает имя файла?

согласно установленным параметрам.

Jokfen писал(а):
И что за точка каталог первого запуска?

у меня такой точки нет.... она вообще где? на элементе FilePathElm

Jokfen писал(а):
а что бы она отобразилась. Для этого можно использовать Image обычный?

да. только подавать туда картинку в формате bmp. Расставь на связях дебаги и увидешь что в потоке передается и в каком формате.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 10
Рейтинг: 8
#15: 2010-09-05 10:38:59 ЛС | профиль | цитата
Ravilr писал(а):
у меня такой точки нет.... она вообще где? на элементе FilePathElm


В компоненте Sdialog

Ravilr писал(а):
да. только подавать туда картинку в формате bmp. Расставь на связях дебаги и увидешь что в потоке передается и в каком формате.


Я пользуюсь Hiasm не очень хорошо, а что такое дебаги?
карма: 0

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