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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2023, 17:12   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию Съезд столбцов при копировании в буфер

Delphi 7
Использую процедуру
Код:
ClipBoard.Assign(bmp)
Где
Код:
var
  bmp:TBitMap;
По какой-то непонятной причине три правые крайние столбца перемещаются налево еще и с сдвигом вниз на 1 пиксель

Откуда такая проблема и как ее исправить?
Kronos913 вне форума Ответить с цитированием
Старый 27.10.2023, 17:14   #2
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию

К слову говоря, такой код даёт ту же самую проблему

Код:
procedure JpgToBufer(const Im:String);
var
  AFormat: Word;
  AData : THandle;
  APalette : HPALETTE;
begin
  with TJPEGImage.Create do
  try
    LoadFromFile(Im);
    SaveToClipboardFormat(AFormat, AData, APalette);
    ClipBoard.SetAsHandle(AFormat, AData);
  finally
    Free;
  end;
end;
Kronos913 вне форума Ответить с цитированием
Старый 27.10.2023, 17:27   #3
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию

Еще интереснее: при копировании в paint или telegram смещение происходит
А при копировании в фотошоп - всё ок
Kronos913 вне форума Ответить с цитированием
Старый 28.10.2023, 22:06   #4
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию

Кто-то что-то знает, как с этим бороться?
Kronos913 вне форума Ответить с цитированием
Старый 29.10.2023, 02:18   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Еще интереснее: при копировании в paint или telegram смещение происходит
А при копировании в фотошоп - всё ок
А где именно код копирования куда-то? Всё что пока представлено это т.н. Paste по аглицки. А где код Copy?
northener вне форума Ответить с цитированием
Старый 29.10.2023, 21:57   #6
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию

Я из своей программы копирую изображение в буфер кодом из 0 и 1 постов

Из буфера обычным Ctrl+V вставляю в Paint, или клиент Telegram - и изображение вставляется со смещением пикселей
Kronos913 вне форума Ответить с цитированием
Старый 30.10.2023, 00:26   #7
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Возможно, там фигня какая-то с 24 и 32 битами на пиксель. Перемещение именно трех «столбцов» (пикселей?) наводит на мысль. У Borland по жизни с цветностью плохо было. Так и остались 16-цветными, код не менялся с Windows 3.x по сути. У вас же Delphi 7?
Vapaamies вне форума Ответить с цитированием
Старый 30.10.2023, 14:11   #8
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию

Да, Delphi7
То есть, попробовать перекодировать BitMap на 32 бита?
Kronos913 вне форума Ответить с цитированием
Старый 30.10.2023, 18:13   #9
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию

Попробовал так сделать. Не помогло, все равно идёт сдвиг.
Код:
      bmp.PixelFormat := pf32bit;
      lipBoard.Assign(bmp);
Kronos913 вне форума Ответить с цитированием
Старый 31.10.2023, 14:59   #10
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию

Есть ли хоть какое-то решение проблемы? И из-за чего она могла возникнуть

Прикрепил два изображения - оригинал и то что скопировалось в итоге из программы
Изображения
Тип файла: jpg Безымянный.jpg (10.0 Кб, 24 просмотров)
Тип файла: png изображение_2023-10-31_135921868.png (5.5 Кб, 24 просмотров)
Kronos913 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединить данные из нескольких групп столбцов на разных листах в одну группу столбцов на новом листе с обновлением nikitch Microsoft Office Excel 0 13.12.2022 23:47
Дан двухмерный массив из 20 столбцов. Вставить в него столбец из чисел 10 после всех четных столбцов. Дмитрий142 Помощь студентам 9 07.06.2012 19:32
Вывести номера тех столбцов, сумма элементов которых меньше нуля, и число таких столбцов Half Помощь студентам 7 16.04.2012 21:23
Съезд Единой России, вот только причём здесь президентство Путина? rpy3uH Свободное общение 28 22.12.2011 08:47
вывод номеров столбцов матрицы и подсчитать количество этих столбцов Vitalina69 Помощь студентам 2 15.02.2011 21:52