Иконки к кнопкам в 2003 офисе
Они могут лежать как ресурсы в exe || dll.
можешь точно указать, в каких? // а- не можешь. ты же микрософтом не пользуешься..
например, файл MSO.dll весит 11Mb, через ресурсную смотрелку я вижу только 1.2Мб ресурсов в нём. подозрительно
файл winword.exe - тоже 11Мб, всего 300К ресурсов - преимущественно иконки.
я пользуюсь "Far resource browser plugin"
какие есть ещё выкачиватели ресурсов?
какие есть ещё выкачиватели ресурсов?Ты меня спрашиваешь? Я это делал в последний раз 5 лет назад Видимо они их как-то хитрее хранят... Есть маза что они все равно хранятся в виде ico. Поэтому можно вырезать кусок иконки, сохранить его как .ico, вырезать из него(файла) кусок и запустить поиск по офисной директории
Конечно же подозрительно выглядит, когда книга из картинок не на 90%, а всего лишь на 10...
картинки 16х16, пусть 8бит, - 256,байт на штуку, добавим заголовк 50байт - 300 байт на штуку, ожидаемое количетсво - 1500 штук, итого 450кб. не так уж и много..
будем искать дальше
потому как в буфер он копируется как 24бпп
может, ResHack поможет?
выбираю "скопировать значок на кнопке"...
запускаю фотошоп, говорю - новая картинка, вставить...
вставляется не та картинка!
Жулики, одним словом..
ладно, буду так у них картинки тырить.. принтскрином
PS. Однако же если скопировать значок с кнопки... а потом его вставить на другую кнопку - то он копируется нормально.. вот блин махинаторы-конспираторы
Если ещё нужно - могу закинуть.
Если хочешь, могу поделится.
Более того, нашёл более-менее приличные коллекции глифов на кнопки. бесплатные и не очень
Ссылку можешь дать, откуда брал скрипт?
Идея такая: не копировать иконку в буфер обмена, а взять дескриптор её и достать низкоуровневыми средствами.
Выкачанные иконки будут 32bpp. по-моему, даже фотошоп не умеет с альфа-каналом в BMP работать. далее применяется утилитка alphahlp.exe, которая конвертит эти bmp в png.
скрипт:
Attribute VB_Name = "modSaveAlphaIcons"
'based on FaceIT's modPump IconBitMaps Sub
'This macro will save the icons as 32bit BMPs with the alpha channel
'By Ryan Rubley <lostreality.org>
'change these only if the icons are really a different size (future version of Office maybe?)
Public Const iIconWidth = 16
Public Const iIconHeight = 16
Public Const iIconBPP = 32
Public Const iIconCount = 10033
Public Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Public Type BITMAPFILEHEADER
bfType As Integer
bfSize As Long
bfReserved1 As Integer
bfReserved2 As Integer
bfOffBits As Long
End Type
Public 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
Sub SaveAlphaIcons
'From Microsoft Office 11.0 Object Library
Dim oBAR As Office.CommandBar
Dim oBTN As Office.CommandBarButton
'From OLE Automation
Dim oIPD As stdole.IPictureDisp
'Misc
Dim sFldr As String
Dim sSubF As String
Dim i As Integer
Dim bBits As Byte
Dim iBitsSize As Integer
Dim bmfh As BITMAPFILEHEADER
Dim bmih As BITMAPINFOHEADER
Dim x As Integer
Dim y As Integer
Dim xmax As Integer
Dim ymax As Integer
Dim bTmp As Byte
Dim bBlank As Boolean
iBitsSize = iIconWidth * iIconHeight * iIconBPP / 8
ReDim bBits(iBitsSize)
sFldr = CurDir
On Error Resume Next
CommandBars("tmpFACEPUMP").Delete
On Error GoTo 0
Set oBAR = CommandBars.Add("tmpFACEPUMP", , , True)
Set oBTN = oBAR.Controls.Add(msoControlButton, , , , True)
bmfh.bfType = &H4D42 'This is the two letters BM
bmfh.bfSize = iBitsSize + 54 '54 is the size of the two headers together
bmfh.bfReserved1 = 0
bmfh.bfReserved2 = 0
bmfh.bfOffBits = 54
bmih.biSize = 40 '40 is the size of this header
bmih.biWidth = iIconWidth
bmih.biHeight = iIconHeight
bmih.biPlanes = 1
bmih.biBitCount = iIconBPP
bmih.biCompression = 0
bmih.biSizeImage = iBitsSize
bmih.biXPelsPerMeter = 0
bmih.biYPelsPerMeter = 0
bmih.biClrUsed = 0
bmih.biClrImportant = 0
xmax = iIconWidth * iIconBPP / 8
ymax = (iIconHeight \ 2) - 1
On Error Resume Next
sSubF = sFldr & "\Office " & Application.Version & " Alpha Icons"
MkDir sSubF
ChDir sSubF
For i = 0 To iIconCount
oBTN.FaceId = i
Call GetBitmapBits(oBTN.Picture.Handle, iBitsSize, bBits(0
'flip the bitmap rows since its upside down from the way we need it
For y = 0 To ymax
For x = 0 To xmax - 1
bTmp = bBitsiIconHeight - y - 1) * xmax) + x)
bBitsiIconHeight - y - 1) * xmax) + x) = bBitsy * xmax) + x)
bBitsy * xmax) + x) = bTmp
Next
Next
'check the alpha channel, if its 100% pure black, don't bother with this icon
'this makes assumptions of 32bpp, and does not check iIconBPP
bBlank = True
For y = 0 To iIconHeight - 1
For x = 0 To xmax - 1 Step 4
If bBitsy * xmax) + x + 3) <> 0 Then
bBlank = False
Exit For
End If
Next
If Not bBlank Then Exit For
Next
If Not bBlank Then
Kill Format(i, "00000") & ".bmp"
Open Format(i, "00000") & ".bmp" For Binary As Put mfh
Put mih
Put its
Close End If
Next
ChDir sFldr
CommandBars("tmpFacePUMP").Delete
Application.StatusBar = "Files pumped to " & sSubF
End Sub
Спасибо точно скажу не только я
лежит все это в Visual Studio 8\Common7\VS2005ImageLibrary
ftp://homestead.hackers/setups_d/icons
В студию загляну при случае..
У меня это всё расшарено в В студию загляну при случае..
1. FastIcons, 4 пакета по 111 изображений. форматы BMP, GIF (transparent PNG (transparent TIFF, WinICO. размеры 16х16, 24х24, 32х32, 48х48
Sample:
2. Glyfz 2003 Set 1: PNG (с прозрачностью размеры 16х16, 24х24, 28х28.
500 иконок, [Normal, Hot, Disabled]
Sample:
(Normal) (А Ваш браузер поддерживает альфа-канал в PNG? )
(Hot)
(Disabled)
3. Glyfz 2003 Set 2: формат аналогичен Set 1
Sample:
(Normal)
(Hot)
(Disabled)
4. GlyFX Set 5 for toolbars, в общей сложности 280 иконок. к каждой прилагается Hot, Disabled (итого 840 изображений каждая имеется в 2 форматах: 16х16 и 24х24. всё BMP 24bpp
5. Q-AppIcons. 76 иконок в двух цветовых гаммах: синяя и зелёная, + комплект disabled. BMP 24bpp. однообразные они какие-то.
Оставить комментарий
yolki
как выдрать родные? те, которые такие:а то все, что получается достать через Control.Set_FaceID(i i=1..400 получаются такие: