Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769

Как сохранить картинку в файл BMP или байтовый массив из Picture1.hdc

21.01.2025, 05:56. Показов 7465. Ответов 82
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сохранить картинку в файл BMP или байтовый массив из Picture1.hdc

Может быть уже есть такая удобная функция, которая бы принимала в качестве параметра Picture1.hdc и/или Picture1.Image.handle и сохраняла бы картинку, не в битовую карту, а именно в файл BMP со всеми заголовками BMP.

Мне просто интересно, так сказать исходный код для сохранения картинки в BMP. Я сегодня кое что нашёл в Интернете для этих целей, но этого не достаточно.

Добавлено через 7 минут
Вот тут интересно очень почитать можно: https://moddb.fandom.com/wiki/... nformation

Добавлено через 11 минут
Вообще я знаю как очень легко сохранить Picture, но мне хотелось бы сохранить не Picture, а то что находится в hdc
Именно в файл!!! А не в битовую карту через GetDIBits.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.01.2025, 05:56
Ответы с готовыми решениями:

Сохранить картинку из DOC файла в другой файл jpg или bmp VBA
Добрый день господа ! Возникла проблемма необходимо вытащить картинки из DOC файла и сохранить их посредством VBA Возможно ли это? ...

Как сохранить байтовый массив в pdf файл?
Хочу написать обработчик который последовательно вынимает байтовые массивы из бд. В массивах хранятся pdf файлы. Как сохранить...

Как сохранить картинку из буфера обмена в файл bmp
Ребята, как с помощью WinAPI сохранить картинку из буфера обмена CF_DIB, в файл .bmp Совсем запутался.

82
 Аватар для Mikle Quits
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 397
25.01.2025, 18:47
Студворк — интернет-сервис помощи студентам
Ну, так же лучше?
Единственное, уже не относящееся собственно к коду, вот эта формулировка какая-то корявая:
Code
1
Модуль для сохранения картинок в байтовый массив BMP
Может, как-то так:
Code
1
Модуль для сохранения Bitmap в образ BMP файла в памяти
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
26.01.2025, 04:21  [ТС]
Лучший ответ Сообщение было отмечено testuser2 как решение

Решение

Можно ещё уменьшить код удалив DIB_RGB_COLORS ненужный, вообще удалить можно. Несколько строк кода выиграть.

Добавлено через 5 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
Option Explicit
'//////////////////////////////////////////////////////////
'// Модуль для сохранения картинок в байтовый массив BMP //
'// Copyright (c) 26.01.2025 by HackerVlad               //
'// e-mail: vladislavpeshkov@ya.ru                       //
'// Версия 1.2                                           //
'//////////////////////////////////////////////////////////
Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function GetDIBits Lib "gdi32" (ByVal hdc As Long, ByVal hbm As Long, ByVal nStartScan As Long, ByVal cLines As Long, lpvBits As Any, lpbmi As BITMAPINFO, ByVal wUsage As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
 
Private Type BITMAPFILEHEADER
    bfType As Integer
    bfSize As Long
    bfReserved1 As Integer
    bfReserved2 As Integer
    bfOffBits As Long
End Type
 
Private Type BITMAPINFOHEADER
    biSize As Long
    biWidth As Long
    biHeight As Long
    biPlanes As Integer
    biBitCount As Integer
    biCompression As Long
    biSizeImage As Long
    biXPelsPerMeter As Long
    biYPelsPerMeter As Long
    biClrUsed As Long
    biClrImportant As Long
End Type
 
Private Type BITMAPINFO
    bmiHeader As BITMAPINFOHEADER
    bmiColors(255) As Long
End Type
 
Private Type BITMAP
    bmType As Long
    bmWidth As Long ' the width of the bitmap
    bmHeight As Long ' the height of the bitmap
    bmWidthBytes As Long    ' the number of bytes needed to store 1 scanline.
                            ' = bmwidth*(bmBitsPixel/8)+padding bytes (if needed)
    bmPlanes As Integer
    bmBitsPixel As Integer ' the number of bits needed to store the color value of 1 pixel
    bmBits As Long
End Type
 
Public Enum SetBPP
    NoConvert = 0 ' Save the current picture bitrate
    ConvertTo1bpp = 1 ' 2 colors
    ConvertTo4bpp = 4 ' 16 colors
    ConvertTo8bpp = 8 ' 256 colors
    ConvertTo16bpp = 16
    ConvertTo24bpp = 24
    ConvertTo32bpp = 32
End Enum
 
' hBitmap is an StdPicture, that is, it can be, for example, Picture1.Picture or Picture1.Image or Image1.Picture
Public Function SavePictureAsBitmap(ByVal hBitmap As Long, BmpFileData() As Byte, Optional ByVal BitsPerPixel As SetBPP) As Boolean
    Dim WidthArray As Long, hdc As Long, ret As Long, ret2 As Long
    Dim bpp As Integer, i As Integer
    Dim FileHeader As BITMAPFILEHEADER
    Dim bInfo As BITMAPINFO
    Dim hBmp As BITMAP
    Dim nCol As Byte
    Dim Palette() As Long
    Dim bArray() As Byte
    
    ' Acceptable BitsPerPixel values: 0 (leave the image without bpp changes), 1 (2 colors), 4 (16 colors), 8 (256 colors), 16, 24, 32
    If BitsPerPixel <> 0 And BitsPerPixel <> 1 And BitsPerPixel <> 4 And BitsPerPixel <> 8 And BitsPerPixel <> 16 And BitsPerPixel <> 24 And BitsPerPixel <> 32 Then Exit Function
    bpp = BitsPerPixel
    
    GetObject hBitmap, LenB(hBmp), hBmp ' We get all the necessary information about the image
    
    If bpp = 0 Then
        bpp = hBmp.bmBitsPixel ' Set the default bits per pixel value for the image
    End If
    
    bInfo.bmiHeader.biHeight = hBmp.bmHeight
    bInfo.bmiHeader.biWidth = hBmp.bmWidth
    bInfo.bmiHeader.biPlanes = hBmp.bmPlanes
    bInfo.bmiHeader.biBitCount = bpp
    bInfo.bmiHeader.biSize = Len(bInfo.bmiHeader)
    
    hdc = GetDC(0) ' We are cheating a little by using the default monitor hDC here
    ret = GetDIBits(hdc, hBitmap, 0, hBmp.bmHeight, ByVal 0&, bInfo, 0)
    
    If ret Then
        WidthArray = bInfo.bmiHeader.biSizeImage / bInfo.bmiHeader.biHeight
        ReDim bArray((WidthArray * bInfo.bmiHeader.biHeight) - 1)
        
        ret2 = GetDIBits(hdc, hBitmap, 0, hBmp.bmHeight, bArray(0), bInfo, 0)
        
        If ret2 Then
            Select Case bpp
                Case 1
                    bInfo.bmiHeader.biClrUsed = 2
                    bInfo.bmiHeader.biClrImportant = 2
                    nCol = 1
                Case 4
                    bInfo.bmiHeader.biClrUsed = 16
                    bInfo.bmiHeader.biClrImportant = 16
                    nCol = 15
                Case 8
                    bInfo.bmiHeader.biClrUsed = 256
                    bInfo.bmiHeader.biClrImportant = 256
                    nCol = 255
                Case 16, 24, 32
                    nCol = 0
            End Select
            
            If nCol > 0 Then ' If a palette is needed
                ReDim Palette(nCol)
                
                For i = 0 To nCol
                    Palette(i) = bInfo.bmiColors(i)
                Next
            End If
            
            FileHeader.bfType = &H4D42 ' BM
            FileHeader.bfOffBits = Len(FileHeader) + Len(bInfo.bmiHeader) + IIf(nCol, (nCol + 1) * 4, 0) ' + palette, if needed
            FileHeader.bfSize = Len(FileHeader) + Len(bInfo.bmiHeader) + IIf(nCol, (nCol + 1) * 4, 0) ' + palette, if needed
            FileHeader.bfSize = FileHeader.bfSize + UBound(bArray) + 1
            
            ReDim BmpFileData(FileHeader.bfSize - 1) ' Allocate memory for a BMP file array
            
            ' We collect a BMP file from various structures
            CopyMemory BmpFileData(0), FileHeader.bfType, 2 ' Write FileHeader (stage 1)
            CopyMemory BmpFileData(2), FileHeader.bfSize, Len(FileHeader) - 2 ' Write FileHeader (stage 2)
            CopyMemory BmpFileData(Len(FileHeader)), bInfo.bmiHeader, Len(bInfo.bmiHeader) ' Write BitmapInfoHeader
            If nCol > 0 Then ' If a palette is needed
                CopyMemory BmpFileData(Len(FileHeader) + Len(bInfo.bmiHeader)), Palette(0), (nCol + 1) * 4 ' Write Palette
            End If
            CopyMemory BmpFileData(FileHeader.bfOffBits), bArray(0), UBound(bArray) + 1 ' Write an array of a bitmap
            
            SavePictureAsBitmap = True
        End If
    End If
    
    ReleaseDC 0, hdc
End Function
Добавлено через 27 секунд
На 5 строчек кода меньше получилось, а так одно и тоже.

Добавлено через 26 минут
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Может, как-то так:
Я же на экспорт пишу, поэтому название у меня будет такое: Module for saving images to a BMP byte array

Добавлено через 46 минут
Протестировал я так же в полном объёме сохранение 32-битных изображений с альфа-каналом и со всеми прозрачностями - никаких нареканий нет. Всё работает идеально.

Добавлено через 1 минуту
Единственное что сложно изначально загрузить что-то в VB6 прозрачное такое...

Добавлено через 11 минут
Цитата Сообщение от testuser2 Посмотреть сообщение
точно также у меня, такое же поведение
Кстати, я нашёл способ как обойти этот глюк для IDE VB6, для этого достаточно просто передавать в функцию SimpleSavePicture не Me.Picture а Me.Image и тогда будет сохранён BMP-образ, даже в IDE.

Добавлено через 9 минут
Можно было конечно всегда использовать супер-простой код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Function SimpleSavePicture(pPic As StdPicture) As Byte()
    Dim PB As PropertyBag
    Set PB = New PropertyBag
    PB.WriteProperty "Pic", pPic
    SimpleSavePicture = MidB(PB.Contents, 51)
End Function
    
    ' Потом где-то в коде...
    Dim bArray() As Byte
        
    bArray = SimpleSavePicture(Me.Image)  ' PropertyBag technology
Но с другой стороны, если так подумать Image ограничевается размерами, а что если будет вылазить за края видимости, а Picture не ограничевается размерами видимости....

Добавлено через 4 минуты
О, я придумал ещё как избавиться от глюка этого в VB6 вот так можно:

Visual Basic
1
2
3
Private Sub Form_Load()
    Me.Picture = Me.Image ' Перефигачить картинку в Picture из JPG в BMP (эту строчку кода можно выполнять только в IDE например, так как в EXE этого глюка Microsoft нету)
End Sub
Вот так вот просто можно!

Добавлено через 2 минуты
Таким образом сегодня я решил сложную задачу как избавиться от глюка Microsoft, при котором в VB6 IDE, в отличии от работы в EXE, есть глюк при котором в Picture находятся данные не в BMP а в JPG в PropertyBag. Вот так как-то...
1
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,507
Записей в блоге: 1
26.01.2025, 05:08
Влад, отлично что ты решил проблему. И я не придираюсь, я вообще в картинках не шарю, просто я не понял эту функцию SimpleSavePicture, это же преобразование в массив, не сохранение, и там по сути всего 51 байт она возвращает, маловато наверное для картинки?

Добавлено через 18 минут
Цитата Сообщение от HackerVlad Посмотреть сообщение
Я же на экспорт пишу, поэтому название у меня будет такое: Module for saving images to a BMP byte array
Одобряю, с той позиции, что если допустим, какой-то китаец, болгарин или бразилец какой-нибудь напишет модулль с названиями и комментарияями на английском, нам также будет проще в этом разобраться.
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
26.01.2025, 12:07  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
всего 51 байт она возвращает
ты код читал? от 51 байта она возвращает всю картинку))) 51 - это смещение)))) ну ты и шутник конечно 51 байт картинка) ахаххаха
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,507
Записей в блоге: 1
26.01.2025, 12:36
Цитата Сообщение от HackerVlad Посмотреть сообщение
от 51 байта она возвращает всю картинку)))
Блин, точно, тупанул я )) Но это из-за SavePicture, я опять начал раздражаться из-за этого и неадекватно рассуждать, потому что это не SavePicture а GetPictureBytes!
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
26.01.2025, 16:19  [ТС]
Не цепляйтесь вы к названиям, Боже мой, переименовывайте вы как хотите эти названия функций или целого модуля...

Добавлено через 3 часа 17 минут
Когда уже не к чему больше прицепиться уже к названиям начинают цепляться это из разряда лишь бы докопаться

Добавлено через 9 минут
testuser2, я же ни разу не говорил тебе, что меня твои названия функций бесят, но это как минимум не вежливо так говорить

Добавлено через 2 минуты
testuser2, вот зэ трику ты бы так сказал? что тебя бесят его названия функций? зассал бы ему так сказать...
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,507
Записей в блоге: 1
26.01.2025, 16:19
Цитата Сообщение от HackerVlad Посмотреть сообщение
Когда уже не к чему больше прицепиться уже к названиям начинают цепляться
Я когда-то ролик смотрел или статью уж не помню, так вот там среди важнейших принципов программирования упоминалось такое поянтие как "нейминг", это про тщательное продумывание названий переменных, функций и т.д. Я сам, не будучи профессиональным прогером, бывает даже не по часу сообржаю как назвать ту или иную переменную. Одно из самых сложных это придумат никнейм на форуме, и эта задача подчас для меня вообще бывает просто не преодолимая.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
26.01.2025, 16:37  [ТС]
testuser2, давай до тебя будут докапываться из разряда лишь бы докопаться? посмотрю я на тебя

Добавлено через 48 секунд
это вместо спасибо молодец хороший код (как часто можно это услышать на иностранном форуме) на русском форуме я заметил одни только осуждения

Добавлено через 39 секунд
вот почему я и говорил что я буду уходить с форума

Добавлено через 14 секунд
если даже мой наставник зэ трик и то начал на меня бочки катить

Добавлено через 1 минуту
потом не удивляйтесь почему мой модуль с комментриями на английском языке только, потому что для русских, для неблагодарных, больше ничего писать не хочется, а за границей меня похвалят

Добавлено через 9 минут
вот почему я в тему готовых решений больше ничего выкладывать и не хочу, а то у драгокаса опять "будет душа болеть" от моего "дерьмо-кода".

Добавлено через 1 минуту
а зэ трик например мне за целый год ни разу ни одного лайка даже не поставил, ну, что тут говорить уже, а сколько я ему лайков поставил...
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,507
Записей в блоге: 1
26.01.2025, 17:47
Цитата Сообщение от HackerVlad Посмотреть сообщение
давай до тебя будут докапываться из разряда лишь бы докопаться?
До меня не надо докапываться, я вообще всегда против всякого негатива и чтобы кого-то специально обсирать. И если ты не заметил, что я всегда пишу немножко с юмором, даже если кажется, что я где-то прикопался и то что я ожидаю, это подобной реакции, т.е. относиться легче и проще.
Цитата Сообщение от HackerVlad Посмотреть сообщение
а зэ трик например мне за целый год ни разу ни одного лайка даже не поставил
Я бы вообще не парился, просто порой такое ощущение, что этот человек настолько много знает, что нафиг ему кому-то из нас ставить лайки, если он уже это все знает и когда-то и где-то об этом уже написал, для него это тупо дублирование информации..

Добавлено через 24 минуты

Не по теме:

Цитата Сообщение от HackerVlad Посмотреть сообщение
вот почему я и говорил что я буду уходить с форума
Не надо уходить с форума, а как я уже говорил, относиться ко всему проще. Я не раз видел новичков, и порой это забавно, хотя новичку действительно может быть очень неприятно, и боязно услышать критику, ведь он(она) может быть не уверен в своих силах. Бывает ситуация, придет допустим девушка очень вежливая с каким-инбудь вопросом, а какой-нибудь завсегдатай докопается до нее и не отстает. В итоге она уходит с форума вся в обидках. Бывает другой тип девченки, придет на форум и сходу обзавет всех айтишников тюфяками и женоподобными. Бывают человек какую-то теорию свою задвигает, его со всех сторон подкалывают но он на своем стоит, видно челове кремень! И смех и грех за сем наблюдать



Добавлено через 32 минуты

Не по теме:

HackerVlad, карочи если ты уйдешь с форума, значит ты не истинный славянин, истинный славянин должен быть слегка говнистымвоинственным ч-ком, и сражаться за свою идею до самого конца! )
ПыСы: без негатива

0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
26.01.2025, 20:17  [ТС]
testuser2, если тебя например девушка перестанет любить ты уйдёшь от девушки? конечно уйдёшь, чтобы не мучиться в отношениях. и ты будешь при этом славянином?)))))))))))))))))))

Добавлено через 1 минуту
testuser2, ты вот кстати зачем пометил мой ответ из последних как решение а потом вдруг отменил зачем-то)

Добавлено через 1 минуту
обидно конечно эта отмена
0
27.01.2025, 01:28

Не по теме:

Цитата Сообщение от HackerVlad Посмотреть сообщение
обидно конечно эта отмена
Я не помню чтоб я отменял, но вот что обидно, про славян вроде не очень шутка в современных реалиях, такое не сразу сообразишь, потом время редактирования кончается.. Лучшеб надо было удалить (

0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
27.01.2025, 03:06  [ТС]
А вот интересно кто отменил тогда, если ты не отменял, хотя мог кто угодно конечно из "экспертов"

Добавлено через 5 минут

Не по теме:

Цитата Сообщение от testuser2 Посмотреть сообщение
потом время редактирования кончается
теперь кстати 12 часов сделали, в случае если никто другой не ответит и не будет нового поста - иначе 10 мин по прежнему, как и было.



Добавлено через 33 минуты

Не по теме:

Цитата Сообщение от The trick Посмотреть сообщение
С большой вероятностью копипаста кода с непониманием как на самом деле это работает.
Очень обидные высказывания конечно в мой адрес. Ты знаешь, как я болезненно к этому отношусь и вряд ли я стал бы заниматься 100%-ым "копи-пастом", особенно после скандала с драгокасом. Неужели ты думаешь что я ни на что не способен ни на что негодный программист который ничего не понимает что пишет? такого засера в свой адрес, я если честно вообще не ожидал.



Я хочу сделать заявление для тех кто считает что я не понимаю, что я пишу и весь код откуда-то слизываю.

Я с этим кодом работал ни один день и разбирался в нём. Я понимаю, что я пишу, комментарии на английском я сделал для того чтобы публиковать на иностранном сайте этот код так же. Очень обидно конечно что так про меня тут думают, ни последние люди, и чмом себя не очень хочется чувствовать конечно. Я проглотил обиду первый раз сейчас скажу, что полным слизыванием кода я не занимаюсь, с полным непониманием как что работает. Но какую-то часть кода я всё же откуда-то скопировал, как и любые программисты это делают. Вряд ли ты всё будешь всё сам полностью на 100% писать с нуля, это же логично. А тут на меня опять бочки покатились, едва утихнул скандал с драгокасом, а это высказывание для меня очень-очень-очень сильно обидно.

Добавлено через 2 минуты

Не по теме:

Ты удалил свой первый пост а я всё равно запомнил, очень-очень обидно. Лучше вообще промолчать чем засирать.



Добавлено через 1 минуту
Код который я пишу я понимаю, но это мой косяк что я почему-то изначально подумал, что VarPtr обязателен, да я ошибся, оказывается VarPtr был не обязателен.

Добавлено через 2 минуты
Поэтому на этом форуме больше ничего публиковать не буду.
P. S. Можете поудалять все мои сообщения, если вам ваша совесть это позволяет. Не удивлюсь этому.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18242 / 14156 / 5366
Регистрация: 17.03.2014
Сообщений: 28,846
Записей в блоге: 1
27.01.2025, 04:06
Цитата Сообщение от HackerVlad Посмотреть сообщение
А вот интересно кто отменил тогда
Единственный кто-то снимал отметку "лучший ответ" в этой теме - вы.
0
1381 / 837 / 89
Регистрация: 08.02.2017
Сообщений: 3,507
Записей в блоге: 1
27.01.2025, 07:36

Не по теме:

HackerVlad, ты как белорус должен быть жёстким человеком. Я видел тут на сайте как один белорус другому сказал, что его сайт позорит честь Белоруси, и многие здесь обсирали его сайт. Но при всем при этом он не ушел с портала и продолжает вести здесь свой блог все время с одним и тем же дибильным заголвком "дневник создателя" (меня это тоже слегка раздражает)). Так что не надо унывать, и тем более если ты считаешь что ты прав (и даже если не прав) надо сраться до конца, пока если только не выгонят с портала. Такая мысль какбы..



Добавлено через 2 часа 38 минут

Не по теме:

Цитата Сообщение от testuser2 Посмотреть сообщение
что его сайт позорит честь Белоруси
Я не шучу, кстати, нашел этот момент. Не то чтоб я сильно интересвался местными блоггерами, хотя последнее время действительно есть что почитать. Просто зашел однажды на блоги, гляжу срачельник какой-то идет в обсуждениях, почему-то запомнился именно этот момент. Это все без негатива если что, к кому бы то ни было..



Добавлено через 20 минут

Не по теме:

Цитата Сообщение от HackerVlad Посмотреть сообщение
изначально подумал, что VarPtr обязателен
Ну я тебе сказал про этот VarPtr, стоило ли из-за этого так реагировать. Я вообще человек психованый и иногда меня чего-то раздражает, можно просто не обращать внимания

0
 Аватар для Mikle Quits
759 / 278 / 14
Регистрация: 21.01.2023
Сообщений: 397
27.01.2025, 08:34
Цитата Сообщение от HackerVlad Посмотреть сообщение
мой косяк что я почему-то изначально подумал, что VarPtr обязателен, да я ошибся, оказывается VarPtr был не обязателен
Нет. Твой косяк, что, когда тебе корректно указали, что в данном коде лучше без VarPtr(), ты начал истерить как девочка:
"Нашёл к чему придраться конечно
Лишь бы докопаться до чего-то"
"ты хотябы пробовал без VarPtr обойтись? прежде чем кричать что он не нужен"
"а есть ли такая вообще возможность в моём коде обойтись без VarPtr? Ты вообще проверял возможно ли это?"
"VarPtr - это идеальность, которая позволяет нам работать со смещениями в структурах для CopyMemory"
"Умники тут меня осуждают"
2
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
27.01.2025, 12:15
Цитата Сообщение от HackerVlad Посмотреть сообщение
а зэ трик например мне за целый год ни разу ни одного лайка даже не поставил, ну, что тут говорить уже, а сколько я ему лайков поставил...
Что за чушь? https://www.cyberforum.ru/post17452536.html - это что?

Цитата Сообщение от testuser2 Посмотреть сообщение
Я бы вообще не парился, просто порой такое ощущение, что этот человек настолько много знает, что нафиг ему кому-то из нас ставить лайки, если он уже это все знает и когда-то и где-то об этом уже написал, для него это тупо дублирование информации..
Дело не в этом. Я обычно проверяю код прежде чем сказать спасибо именно за код. Сейчас у меня нет желания и времени тестить его коды, к тому же тут недавно была информация об удалении копирайтов и присвоения чужого кода. Самому проверять это - нет желания от слова совсем, поэтому я не тороплюсь благодарить за код, особенно когда я вижу что код откуда-то скопирован без понимания смысла работы. Если бы там было упоминания откуда был взят оригинальный код, то тогда бы было все гуд. Такие случаи уже бывали тут на форуме, но тогда я тщательно следил за всеми кодами что тут выкладывались и удалял без "выноса ссора из избы" в личке обсуждая. И тогда меня поливали дерьмом за это (причем стиль общения человека был приблизительно такой же). Сейчас же я просто никак не реагирую - пусть на совести опубликовавшего остается. Более того многие его коды в разделе Готовых Решений я "лайкал", не знаю на что он тут обижается, видимо на то что я на его бесконечный флуд не ставлю еще "лайки". Ты не поверишь но у меня на почте уже все завалено уведомлениями от киберфорума из-за него.

Цитата Сообщение от HackerVlad Посмотреть сообщение
Ты знаешь, как я болезненно к этому отношусь и вряд ли я стал бы заниматься 100%-ым "копи-пастом", особенно после скандала с драгокасом.
Ну я не написал что 100%, я написал что код возможно был дернут откуда-то и дополнен. Мое мнение не есть истина. Просто прецеденты уже были.

Цитата Сообщение от HackerVlad Посмотреть сообщение
Неужели ты думаешь что я ни на что не способен ни на что негодный программист который ничего не понимает что пишет? такого засера в свой адрес, я если честно вообще не ожидал.
Ну я могу вообще не участвовать в комментировании твоего кода, раз ты так болезненно реагируешь на критику. Я ничего обидного не написал, функционал кода не оспаривал; я его даже не запускал.

Цитата Сообщение от HackerVlad Посмотреть сообщение
Я с этим кодом работал ни один день и разбирался в нём. Я понимаю, что я пишу, комментарии на английском я сделал для того чтобы публиковать на иностранном сайте этот код так же. Очень обидно конечно что так про меня тут думают, ни последние люди, и чмом себя не очень хочется чувствовать конечно. Я проглотил обиду первый раз сейчас скажу, что полным слизыванием кода я не занимаюсь, с полным непониманием как что работает. Но какую-то часть кода я всё же откуда-то скопировал, как и любые программисты это делают. Вряд ли ты всё будешь всё сам полностью на 100% писать с нуля, это же логично. А тут на меня опять бочки покатились, едва утихнул скандал с драгокасом, а это высказывание для меня очень-очень-очень сильно обидно.
Дело не в том что ты не понимаешь, а в том что ты не указываешь источник откуда взял оригинальный код. Прости, но если ты не понимаешь как скопировать структуру с байтовым выравниванием, то с DIB-секциями (упакованными и неупакованными) ты по моему мнению не сможешь работать. Опять же зачем 2 раза делать GetDC(0)? Зачем VarPtr там где не нужен? Да я считаю просто дернул код с такими декларациями откуда-то как было, вставил и дополнил чем-то. Если ты писал все сам - хорошо, тогда ответь на вопросы если тебя так задевает моя "несправедливая" критика.

Цитата Сообщение от HackerVlad Посмотреть сообщение
Ты удалил свой первый пост а я всё равно запомнил, очень-очень обидно. Лучше вообще промолчать чем засирать.
Какой пост я удалил? Что там было? В этой теме я ни одного поста не удалял.

Цитата Сообщение от HackerVlad Посмотреть сообщение
P. S. Можете поудалять все мои сообщения, если вам ваша совесть это позволяет. Не удивлюсь этому.
Поэтому тут и ограничивают в редактировании старых постов, чтобы потом такие не терли все свои сообщения от мимолетной обиды. Успокойся, отдохни немного от кодинга, мы тут на тебя не наезжаем, а просто общаемся с тобой, запомни это.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
27.01.2025, 14:49  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Какой пост я удалил?
Свой собственный, где меня засрал в первый раз. То есть ты злоупотребил властью модератора в своих личных целях. Захотел написал оскорбил меня, потом захотел удалил этот пост, передумал. Скрин сделать не успел доказать не смогу конечно. Между 41 и 59 постами.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18242 / 14156 / 5366
Регистрация: 17.03.2014
Сообщений: 28,846
Записей в блоге: 1
27.01.2025, 15:28
Цитата Сообщение от HackerVlad Посмотреть сообщение
Свой собственный, где меня засрал в первый раз. То есть ты злоупотребил властью модератора в своих личных целях. Захотел написал оскорбил меня, потом захотел удалил этот пост, передумал. Скрин сделать не успел доказать не смогу конечно. Между 41 и 59 постами.
Он ничего подобного не делал. В данной теме был удален только один пост. Это дубль вашего поста #55. Вам следует извиниться.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
27.01.2025, 15:55  [ТС]
Код я писал сам. Кому следовало бы извиниться это The trick'у если на то уже пошло, но уверен никто извиняться не будет. А пост тот я хорошо помню и то что он исчез - это факт, его так же могут помнить и другие форумчане, правда не обязательно конечно трик его мог удалить, но то что он был это 100%.

Цитата Сообщение от The trick Посмотреть сообщение
2 раза делать GetDC(0)
Ну вот так вот я по глупому написал изначально.

Цитата Сообщение от The trick Посмотреть сообщение
Зачем VarPtr там где не нужен?
Не знаю почему-то подумал что без VarPtr никак. Привык до этого просто структуры через VarPtr копировать. Это не такая уж и ошибка а просто другой способ в итоге ведь всё работает одинаково.

Короче разговор этот бессмысленный. Пускай трик считает что я весь этот код содрал, что я ничего не понимаю в программировании, мне уже всё равно, честно.
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
27.01.2025, 16:39
Цитата Сообщение от HackerVlad Посмотреть сообщение
Кому следовало бы извиниться это The trick'у если на то уже пошло, но уверен никто извиняться не будет. А пост тот я хорошо помню и то что он исчез - это факт, его так же могут помнить и другие форумчане, правда не обязательно конечно трик его мог удалить, но то что он был это 100%.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.01.2025, 16:39
Помогаю со студенческими работами здесь

Как сделать Picture1.hDC динамичным?
Privet. podskajitye pojalusta u minya est takoy kod. Private Declare Function SetPixelV Lib 'gdi32' (ByVal hDC As Long, ByVal x...

Как сохранить хэндл иконки в файл bmp или ico?
Люди! Кто-нить может подсказать: есть хэндл иконки, как эту иконку сохранить куда-нибудь в файл bmp или ico?

Как сохранить содержимое HDC в графический файл?
Есть HDC с неким изображением. Надо сохранить изображение в файл. Как это сделать?

Как перевести картинку в байтовый массив?
Следующим образом принимаю файл в контроллере и сохраняю картинку без проблем. КОнтроллер: $img = $_POST; echo...

Как сохранить картинку *.bmp в MSSQL
Доброго времени суток. Есть таблица sotrudniki, содержащая поля fio(фио сотрудника), tab_num(табельный номер), iso(фотография сотрудника) в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru