Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2009, 04:54   #1
Ooops
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 12
По умолчанию Редактор иконок

Привет всем !
Можете мне помочь мне нужен исходник для редактора иконок (для курсовой) не очень замудренный ! Просто чтобы он редактировал и ни4его лишнего ! Очень прошу помогите! Буду благодарен.
Ooops вне форума Ответить с цитированием
Старый 08.12.2009, 15:37   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Найди исходники любого редактора растрового, принципиальных различий нет, и добавь туда сохранение в формате ico.

Больше по такому вопросу тебе помочь ничем не смогут, не будут же за тебя программу писать. Да и искать в нете вместо тебя никто не будет.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 10.12.2009, 23:06   #3
Ooops
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 12
По умолчанию

#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <math.h>

#define colors 256

typedef unsigned char BYTE; /* 1 byte */
typedef unsigned short WORD; /* 2 byte */
typedef unsigned int UINT; /* 2 byte */
typedef unsigned long DWORD; /* 4 byte */
typedef signed long LONG; /* 4 byte */

LONG width, // ширина BITMAP
height, // высота BITMAP
count, // ширина * высота
Index;
FILE *file;

typedef struct tagBitmapFileHeader /* 14 byte */
{
UINT bfType; // тип файла
DWORD bfSize; // размер файла
UINT bfReserved1;
UINT bfReserved2;
DWORD bfOffbits; // смещение данных битового образа от заголвка (байт)
}BitmapFileHeader;

BitmapFileHeader File_Header;

typedef struct tagBitmapInfoHeader /* 40 byte */
{
DWORD biSize; // число байт, занимаемых структурой
LONG biWidth; // ширина битового образа в пикселах
LONG biHeight; // высота битового образа в пикселах
WORD biPlanes; // число битовых плоскостей устройства
WORD biBitCount; // число битов на пиксел
DWORD biCompression; // тип сжатия
DWORD biSizeImage; // размер картинки в байтах
LONG biXPelsPerMeter; // горизонт. разрешение устройства (пиксел/метр)
LONG biYPelsPerMeter; // вертикальн. разрешение устройства (пиксел/метр)
DWORD biClrUsed; // число используемых цветов
DWORD biClrImportant; // число "важных" цветов
}BitmapInfoHeader;

BitmapInfoHeader Info_Header;

typedef struct tagRGBQUAD /* 4 byte */
{
BYTE rgbRED; // интенсивность красного
BYTE rgbGREEN; // интенсивность зеленого
BYTE rgbBLUE; // интенсивность голубого
BYTE rgbRESERVED;
}RGBQUAD;

RGBQUAD *Rgb_Table;

/*---------------------------------------------------*/
int CreateRGBTable() //создаем таблицу цветов BITMAP
{
Rgb_Table = (RGBQUAD*)malloc(colors * sizeof(RGBQUAD));
for (int i = 0; i < colors; i++)
{ // "заливаем" все оттенки серого
Rgb_Table[i].rgbBLUE = i;
Rgb_Table[i].rgbGREEN = i;
Rgb_Table[i].rgbRED = i;
Rgb_Table[i].rgbRESERVED = 0;
}
return(0);
}
/*---------------------------------------------------*/
int CreateFileHeader() //создаем заголовок файла
{
File_Header.bfType = 0x4D42;
File_Header.bfSize = sizeof(BitmapFileHeader) + sizeof(BitmapInfoHeader) +
count + sizeof(RGBQUAD) * colors - 1;
File_Header.bfReserved1 = 0;
File_Header.bfReserved2 = 0;
File_Header.bfOffbits = sizeof(BitmapFileHeader) + sizeof(BitmapInfoHeader) +
colors * sizeof(RGBQUAD);
return(0);
}
/*---------------------------------------------------*/
int CreateInfoHeader() //создаем заголовок BITMAP
{
Info_Header.biSize = sizeof(BitmapInfoHeader);
Info_Header.biWidth = width;
Info_Header.biHeight = height;
Info_Header.biPlanes = 1;
Info_Header.biBitCount = (int)(log(colors)/log(2));
Info_Header.biCompression = 0;
Info_Header.biSizeImage = File_Header.bfSize -
(sizeof(BitmapFileHeader) + sizeof(BitmapInfoHeader) +
sizeof(RGBQUAD) * colors);
Info_Header.biXPelsPerMeter = 0;
Info_Header.biYPelsPerMeter = 0;
Info_Header.biClrUsed = 0;
Info_Header.biClrImportant = 0;
return(0);
}
/*---------------------------------------------------*/
int main()
{
clrscr();
printf("Create bitmap file ...");

width = 800;
height = 600;
count = height * width;

CreateRGBTable();
CreateFileHeader();
CreateInfoHeader();

file = fopen("tmp.bmp", "wb");

fwrite(&File_Header,sizeof(BitmapFi leHeader),1,file);
fwrite(&Info_Header,sizeof(BitmapIn foHeader),1,file);
for (int i = 0; i < colors; i++)
fwrite(&Rgb_Table[i], sizeof(RGBQUAD), 1, file);

fseek(file, File_Header.bfOffbits, 0);

unsigned char indx = colors - 1;
do{
fputc(indx, file);
Index++;
indx--; if (indx <= 0) indx = colors - 1;
}while(Index < count);

fclose(file);
return(0);
}

Можешь подредактировать что бы все норм было ! Я просто не особо шаренный в этой сфере , чтоб был похож на полноценный редактор иконок ! ПЛЗ
Ooops вне форума Ответить с цитированием
Старый 10.12.2009, 23:06   #4
Ooops
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 12
По умолчанию

и вообще то это или нет
Ooops вне форума Ответить с цитированием
Старый 12.12.2009, 01:43   #5
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

На каком языке-то нужно? На C++?

То что вы нашли - код программы на C++... Консольной... о_О
И оно у меня почему-то вылетает на "fwrite(&File_Header, sizeof(BitmapFileHeader), 1, file);" (не стал разбирался почему)...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 13.12.2009, 02:40   #6
Ooops
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 12
По умолчанию

а где мне достать на делфи я вообще не знаю помоги найти пожалуйста !
Ooops вне форума Ответить с цитированием
Старый 13.12.2009, 03:20   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Помогаю.
..Delphi7\Demos\Doc\Graphex
плюс
Код:
Как преобразовать bmp (32x32) в ico

unit main;

interface

uses
windows, messages, sysutils, classes, graphics, controls,
forms,dialogs,extctrls, stdctrls;

type
tform1 = class(tform)
button1: tbutton;
image1: timage;
image2: timage;
procedure button1click(sender: tobject);
procedure formcreate(sender: tobject);
private
{ private declarations }
public
{ public declarations }
end;

var
form1: tform1;

implementation

{$r *.dfm}

procedure tform1.button1click(sender: tobject);
var windc, srcdc, destdc : hdc;
oldbitmap : hbitmap;
iinfo : ticoninfo;
begin
geticoninfo(image1.picture.icon.handle, iinfo);

windc := getdc(handle);
srcdc := createcompatibledc(windc);
destdc := createcompatibledc(windc);
oldbitmap := selectobject(destdc, iinfo.hbmcolor);
oldbitmap := selectobject(srcdc, iinfo.hbmmask);

bitblt(destdc, 0, 0, image1.picture.icon.width,
image1.picture.icon.height,
srcdc, 0, 0, srcpaint);
image2.picture.bitmap.handle := selectobject(destdc, oldbitmap);
deletedc(destdc);
deletedc(srcdc);
deletedc(windc);

image2.picture.bitmap.savetofile(extractfilepath(application.exename)
+ 'myfile.bmp');
end;

procedure tform1.formcreate(sender: tobject);
begin
image1.picture.icon.loadfromfile('c:\myicon.ico');
end;

end.
Далее остается добавить немного усидчивости...
А если не хочется - милости просим во фриланс - там полная халява по разумным ценам...
mihali4 вне форума Ответить с цитированием
Старый 14.12.2009, 01:53   #8
Ooops
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 12
По умолчанию

что за фриланс и что тут надо менять ?
Ooops вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подборка иконок .ico GenniY Свободное общение 3 19.11.2009 19:45
Редактор для создания 3D иконок под XP\Vista\Mac aiswork Софт 0 19.05.2009 01:20
Извлечение иконок из PE файлов uberchel Софт 1 20.03.2009 00:14
Загрузка иконок файлов igroman Общие вопросы Delphi 4 29.05.2008 09:00
отображение иконок в DBGrid Yoger БД в Delphi 3 04.03.2007 02:33