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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2010, 18:18   #1
Diego__
Форумчанин
 
Регистрация: 12.08.2009
Сообщений: 118
По умолчанию Как убрать сглаживание

Верд 2007. Через СОМ вставляю изображение 3х3 пикселя. Три левых пикселя белые, все остальные черные. Растягиваю изображение. Получаю изображение плавно переходящие из белого в черное. untitled.bmp

С++
Код:
Word::InlineShapePtr inlineShape = m_WordDocument->Paragraphs->Last->Range->GetInlineShapes()->AddPicture(L"c:\\untitled.bmp");

Word::ShapePtr shapePtr  = inlineShape->ConvertToShape();

shapePtr->WrapFormat->Type = Word::wdWrapBehind;

shapePtr->Left = m_AppWord->CentimetersToPoints(3);
shapePtr->Top = m_AppWord->CentimetersToPoints(3);


shapePtr->ScaleWidth(90.f, Office::msoFalse, Office::msoScaleFromTopLeft);
shapePtr->ScaleHeight(90.f, Office::msoFalse, Office::msoScaleFromTopLeft);
Как сделать изображение без сглаживания?

Последний раз редактировалось Diego__; 12.07.2010 в 18:28.
Diego__ вне форума Ответить с цитированием
Старый 12.07.2010, 19:08   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Думаю, что стандартными средствами никак. Это же битовое изображение, а не векторное.
Можешь попробовать после растягивания треть рисунка попиксельно сделать белой, а две трети — чёрной
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 12.07.2010, 23:49   #3
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Попробуйте вместо битовой картинки вставить VML шейп.
Он точно будет масштабироваться как надо
Aent вне форума Ответить с цитированием
Старый 13.07.2010, 15:32   #4
Diego__
Форумчанин
 
Регистрация: 12.08.2009
Сообщений: 118
По умолчанию

Как правильно вставить VML шейп? Через метод range-a InsertFile? Или как то по другому?

пробую
Код:
m_WordDocument->GetParagraphs()->GetLast()->GetRange()->InsertFile(L"C:\\111.txt");
файл 111.txt
Код:
<HTML xmlns:v="urn:schemas-microsoft-com:vml">
<HEAD>
<TITLE>Your title here</TITLE>
<STYLE>
v\:*{ behavior: url(#default#VML); }
</STYLE>
</HEAD>
<body>
<body>
<w:pict>
<v:image src="C://untitled.bmp" stroke="false" fill="false" style='position:absolute; 
left:0cm; top:0cm; width:2cm; height:2cm; z-index:1;
mso-position-horizontal-relative:page; mso-position-vertical-relative:page;' >
<v:fill opacity="1" />
<v:stroke opacity="1" />
</v:image>
</w:pict>
</body>
</html>
все равно изображение остается прежним

Последний раз редактировалось Diego__; 13.07.2010 в 15:38.
Diego__ вне форума Ответить с цитированием
Старый 13.07.2010, 17:35   #5
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Конечно оно останется прежним. Вы же снова вставляете растр.
Надо создать шейп как векторную фигуру. Например, из залитого чёрного
прямоугольника и белого отрезка. Или из 2-х прямоугольников
Aent вне форума Ответить с цитированием
Старый 13.07.2010, 18:24   #6
Diego__
Форумчанин
 
Регистрация: 12.08.2009
Сообщений: 118
По умолчанию

Я не совсем ясно изложил суть проблемы. Я имею в виду не частный случай вставки изображения 3х3, а общий, в котором небольшое изображение растягивается многократно, и цвета на границе пикселей сглаживаются как на рисунке выше.
Другими словами, как отключить интерполяцию цвета для одного конкретного вставленного растрового изображения или для всего документа? или как сказал Viter.Alex
Цитата:
Думаю, что стандартными средствами никак.
Diego__ вне форума Ответить с цитированием
Старый 13.07.2010, 21:00   #7
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

В такой постановке вопроса могу только полностью согласиться с Viter.Alex
Aent вне форума Ответить с цитированием
Старый 14.07.2010, 11:59   #8
Diego__
Форумчанин
 
Регистрация: 12.08.2009
Сообщений: 118
По умолчанию

Спасибо за ответы

Последний раз редактировалось Diego__; 14.07.2010 в 17:17.
Diego__ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сглаживание матрицы RedSquirrel Помощь студентам 9 18.06.2010 02:49
Delphi: сглаживание сигнала или графика tanek Помощь студентам 17 27.11.2009 18:30
Сглаживание кривых безье, чтобы смотрелись плавно G@sh!sh Мультимедиа в Delphi 6 22.11.2009 19:28
Сглаживание Kn793 Мультимедиа в Delphi 2 28.06.2009 16:09
Сглаживание углов формы. celovec Общие вопросы Delphi 12 10.02.2009 17:44