Нанести воядной знак на картинку

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Нанести воядной знак на картинку

Сообщение SSecurity » 21.03.2009 (Сб) 15:50

Всем привет!

Я использую тёмычевскую обертку к GDI+ (Спасибо!) для работы с изображениями. Ввиду того что мануала к обертке я как-бы не нашел :) возник хитрый вопрос - как можно с известной прозрозрачностью нарисовать на одной картинке другую.

мои изощрения привели к такому коду:

Код: Выделить всё
Dim X1 As New prjGDIplus.Global
  Dim X2 As prjGDIplus.Image
  Dim X3 As prjGDIplus.Image
  Dim E1 As Effect
  Dim I As Long
  Dim J As Long
  Dim R As Long, B As Long, G As Long
  Dim AAA As OLE_COLOR
  Dim K As Long
 
 
  Set X2 = X1.CreateImage("d:\masik.jpg")
  Set X3 = X1.CreateImage("d:\rgvtl.jpg")
   
  For I = 1 To X3.Width - 1
    For J = 1 To X3.Height - 1
      K = X3.Pixel(I, J)
      K = X1.ARGB2(K, 80)
      X3.Pixel(I, J) = K     
    Next J
  Next I
 
  X2.CreateGraphics.DrawImage X3, 0, 0, X3.Width, X3.Height
  X2.SaveToJpeg "d:\masik2.jpg"


вообщем-то работает .... но не совсем так как надо .... проблема с цветами ... :)
наносимое изображение становится красным (где было белым)...

Просьба подсказать что подправить
Заранее благодарен за ответы,

С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Re: Нанести воядной знак на картинку

Сообщение SSecurity » 21.03.2009 (Сб) 16:18

Тему можно закрывать, Спасибо всем за ответы:)))
решение нашлось:

Код: Выделить всё
Dim X1 As New prjGDIplus.Global
  Dim X2 As prjGDIplus.Image
  Dim X3 As prjGDIplus.Image
  Dim E1 As Effect
  Dim I As Long
  Dim J As Long
  Dim R As Long, B As Long, G As Long
  Dim AAA As OLE_COLOR
 
  Dim K As Long
 
 
  Set X2 = X1.CreateImage("d:\masik.jpg")
  Set X3 = X1.CreateImage("d:\rgvtl.jpg")
   
  For I = 1 To X3.Width - 1
    For J = 1 To X3.Height - 1
      K = X3.Pixel(I, J)
      K = X1.ARGB(X1.FromARGB(K), 80)
      X3.Pixel(I, J) = K
    Next J
  Next I
 
  X2.CreateGraphics.DrawImage X3, 0, 0, X3.Width, X3.Height
  X2.SaveToJpeg "d:\masik2.jpg"
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

DRU
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 56
Зарегистрирован: 16.11.2008 (Вс) 23:26
Откуда: Беларусь, Гомель

Re: Нанести воядной знак на картинку

Сообщение DRU » 24.03.2009 (Вт) 21:00

Забавно как быстро была решена проблема:D

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Re: Нанести воядной знак на картинку

Сообщение SSecurity » 24.03.2009 (Вт) 21:54

DRU писал(а):Забавно как быстро была решена проблема:D

В первом посте 90% процентов решения ... оставшиеся 10% пришлось тыкать в небо пальцем. Но дотыкал как-то :)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 14

    TopList