Показать конечно можно:xolod писал(а):Уж сколько раз говорили, телепаты бросили нас еще на момент зарождения сайта VBStreets.ru, так что можно и кусочек кода, где изображения загр. в image показать..
Image(1).Picture = LoadPicture(App.Path & "\Bitmap\Picture1.gif")
Image(2).Picture = LoadPicture(App.Path & "\Bitmap\Picture2.gif")
Image(3).Picture = LoadPicture(App.Path & "\Bitmap\Picture3.gif")
Конечно на местеxolod писал(а):ЗЫ: А изображения то на месте? А то может и грузить нечего?
Мда, сам ничего не понимаю. Если сделать картинки jpg или bmp и в коде поменять расширения, то все работает. Но все дело в том, что эти картинки заполняют не всю прямоугольную облсть (есть прозрачные фрагменты) и gif как раз эту прозрачность сохраняет, а jpg и bmp при сохранении заполняют прозрачные области белым цветом.xolod писал(а):Да вроде правильно все.. непонятно
Declare Function TransparentBlt Lib "msimg32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crTransparent As Long) As Boolean
А не подскажешь как с GetPixel работать. Ну например, в PictureBox Picture1 загружен рисунок, как узнать цвет пикселя с координатами 60,60.Ariman писал(а):Point это очень медленно. Лучше GetPixel
Ну с GetPixel разобрался - полазил по форуму, и все, что надо, нашел, все работает. Теперь интересует , можно ли из этого восьмизначного числа получить цвет в RGB.Gfif21 писал(а):А не подскажешь как с GetPixel работать. Ну например, в PictureBox Picture1 загружен рисунок, как узнать цвет пикселя с координатами 60,60.Ariman писал(а):Point это очень медленно. Лучше GetPixel
B = Color \ 65536 Mod 256
Не, типа я не сумашедший. Просто я закрасил в картинках пустые места цветом фона окна. Но появилась небольшая проблема: вот я закрасил пустые места цветом (223,233,243). Потом я загружаю картинку в Имедж и делаю таким же цветом фон окна Form1.backcolor = RGB (223,233,243). Но когда я запускаю проект у меня цвет на картинке меняется (вот с помощью GetPixel установил, что он почему-то становится (224,241,249)) и не совпадает с цветом фона (визуально это хорошо видно). Вот не пойму никак, почему цвет меняется.tyomitch писал(а):Gfif21, ты что ли циклом по всем пикселам собрался определять, где прозрачно и где нет?
Gfif21 писал(а):Не, типа я не сумашедший. Просто я закрасил в картинках пустые места цветом фона окна.tyomitch писал(а):Gfif21, ты что ли циклом по всем пикселам собрался определять, где прозрачно и где нет?
Может дашь пример синтаксиса TransparentBlt, а то я полазил по форуму и нашел только как эта функция объявляется, а что в коде писать не знаю.tyomitch писал(а):Gfif21 писал(а):Не, типа я не сумашедший. Просто я закрасил в картинках пустые места цветом фона окна.tyomitch писал(а):Gfif21, ты что ли циклом по всем пикселам собрался определять, где прозрачно и где нет?
Тоже, кстати, нехорошо. Если цвет окна изменят, картинка опять будет на квадратном фоне.
Тебе же уже посоветовали TransparentBlt ? С ним твоя задача решилась бы в пару строк. И никакого GetPixel-а не надо
'This project needs 2 pictureboxes
'Picturebox1 must contain a picture with a lot of white pixels (we're going to use white as transparent color)
Private Declare Function TransparentBlt Lib "msimg32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crTransparent As Long) As Boolean
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Picture1.AutoSize = True
'API uses pixels
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
End Sub
Private Sub Picture2_Paint()
'If we don't call DoEvents first, our transparent image will be completely wrong
DoEvents
TransparentBlt Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite
End Sub
Amed писал(а):Предложил бы несколько иной пример:
TransparentBlt Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, RGB(0, 0, 0)
И у Picture2 красный BackColor... Так нагляднее, нет?
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 30